<?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>benjamin erhart &#187; Palm Pre</title>
	<atom:link href="http://benjaminerhart.com/tag/palm-pre/feed/" rel="self" type="application/rss+xml" />
	<link>http://benjaminerhart.com</link>
	<description>web &#38; mobile dev / it sec</description>
	<lastBuildDate>Wed, 01 Feb 2012 15:41:43 +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>iPhone Web App Game &#8211; Lessons Learned</title>
		<link>http://benjaminerhart.com/2010/03/iphone-web-app-game-lessons-learned/</link>
		<comments>http://benjaminerhart.com/2010/03/iphone-web-app-game-lessons-learned/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 11:44:09 +0000</pubDate>
		<dc:creator>tla</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPhone Web App]]></category>
		<category><![CDATA[Palm Pre]]></category>
		<category><![CDATA[Pre]]></category>
		<category><![CDATA[Web App]]></category>
		<category><![CDATA[Web Game]]></category>
		<category><![CDATA[Webapp]]></category>

		<guid isPermaLink="false">http://benjaminerhart.com/?p=355</guid>
		<description><![CDATA[Im letzten Monat hatte ich das Vergnügen ein Glücksspiel zu implementieren.

Um genau zu sein handelt sich um eine sog. 5 Reel Slot Machine, bzw. eigentlich um eine Simulation derselben. Sie trägt den Namen "Gold of Yucatan", denn das ist das Thema: Das Gold von Yucatan zu finden... Ja, na, eh.

Das Ergebnis meiner Bemühungen ist ...]]></description>
			<content:encoded><![CDATA[<p>Im letzten Monat hatte ich das Vergnügen ein Glücksspiel zu implementieren.</p>
<p>Um genau zu sein handelt sich um eine sog. 5 Reel Slot Machine, bzw. eigentlich um eine Simulation derselben. Sie trägt den Namen &#8220;<strong>Gold of Yucatan</strong>&#8220;, denn das ist das Thema: Das Gold von Yucatan zu finden&#8230; Ja, na, eh.<br />
<span id="more-355"></span><br />
Das Ergebnis meiner Bemühungen ist auf den <a href="http://wap.bwin.com/">hier</a> zu bewundern. Leider braucht man auch für ein Probespiel mit rein virtuellem Einsatz einen Account. Das iPhone Spiel kriegt man nur angeboten, wenn man mit einem iPhone oder iPod Touch User Agent daher kommt. Es empfiehlt sich <a href="http://www.apple.com/de/safari/download/">Safari 4</a>, wenn man kein iPhone zur Hand hat, denn der hat die entsprechenden UA Strings schon eingebaut und rendert auch die CSS3 Transitions korrekt.</p>
<p>Ich habe ein paar Photos gemacht:</p>

<div class="ngg-galleryoverview" id="ngg-gallery-17-355">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-830" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/iPhone horizontal Canvas Linie.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="iPhone horizontal Canvas Linie" alt="iPhone horizontal Canvas Linie" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_iPhone horizontal Canvas Linie.jpg" width="100" height="68" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-829" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/iPhone fullscreen vertikal.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="iPhone fullscreen vertikal" alt="iPhone fullscreen vertikal" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_iPhone fullscreen vertikal.jpg" width="44" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-828" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/iPhone fullscreen horizontal.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="iPhone fullscreen horizontal" alt="iPhone fullscreen horizontal" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_iPhone fullscreen horizontal.jpg" width="100" height="55" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-827" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/iPhone Spinning Wheels.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="iPhone Spinning Wheels" alt="iPhone Spinning Wheels" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_iPhone Spinning Wheels.jpg" width="45" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-826" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/iPhone Lobby Screen.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="iPhone Lobby Screen" alt="iPhone Lobby Screen" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_iPhone Lobby Screen.jpg" width="42" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-824" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/iPhone Game Screen horizontal.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="iPhone Game Screen horizontal" alt="iPhone Game Screen horizontal" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_iPhone Game Screen horizontal.jpg" width="100" height="55" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-825" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/iPhone Game Screen.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="iPhone Game Screen" alt="iPhone Game Screen" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_iPhone Game Screen.jpg" width="41" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-823" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://benjaminerhart.com/wp-content/gallery/goy/Palm Pre.jpg" title=" " class="thickbox" rel="set_17" >
								<img title="Palm Pre" alt="Palm Pre" src="http://benjaminerhart.com/wp-content/gallery/goy/thumbs/thumbs_Palm Pre.jpg" width="45" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<h2>Was ist nun das besondere an iPhone Web Apps?</h2>
<p>Wenn man alles richtig macht, hat man am Ende eine Applikation, die sich fast genauso verhält, wie eine native iPhone Applikation. Einziger klarer Unterschied: Ohne Datenverbindung geht nix, denn die Web App wird immer vom Server geladen. Andererseits spart man sich dafür auch die Apple Zensur: Man muß nicht erst durch den iTunes Store, sondern kann das ganze einfach auf eigene Faust machen.</p>
<p>Wenn man will, kann man aber trotzdem von Apple beworben werden. Sie bieten einen <a href="http://www.apple.com/webapps/">eigenen Web App Katalog an</a>. Zugegeben, der ist im Vergleich zum App Store äußerst unbekannt, der Werbeerfolg wird sich also in Grenzen halten. Bei der <a href="http://www.selbstaendig-im-netz.de/2009/12/15/selbstaendig/iphone-apps-entwickeln-und-davon-leben/">riesigen Menge</a> an nativen Apps im App Store hilft die reine Präsenz in selbigen allerdings auch kaum mehr.</p>
<h2>Architektur</h2>
<p>Eine iPhone Web App befindet sich unter genau einer Resource, also einer einzigen HTML Seite. Alles was man anzeigen will, muß sich darin befinden.</p>
<p>Man kann natürlich dennoch mehrere &#8220;Seiten&#8221; haben, der Inhalt muß sich aber eben innerhalb einer einzigen HTML Datei befinden. Dieser kann mit JavaScript auch dynamisch generiert bzw. nachgeladen und hin- und hergewechselt werden.</p>
<p>Die alte <a href="http://de.wikipedia.org/wiki/Wireless_Markup_Language">WML</a> Metapher des &#8220;Decks&#8221; und der &#8220;Cards&#8221; drängt sich auf.</p>
<p>Da ich <a href="http://jquery.com/">jQuery</a> Fan bin (meine Plugins dafür sollten das wohl hinreichend beweisen&#8230;), drängt sich mir die Verwendung desselben natürlich auf. Zum Glück war David Kaneda so freundlich und hat bereits <a href="http://www.jqtouch.com/">jQTouch</a> entwickelt. (<a href="http://code.google.com/p/jqtouch/">Projektseite bei Google Code</a>)</p>
<p>Das kapselt alles nötige Know-How in einer JavaScript und einer CSS Datei.</p>
<h2>jQTouch Features</h2>
<ul>
<li>Automatisches setzen der benötigten spezifischen Web App <code>&lt;head&gt;</code> Tags</li>
<li>Vorgefertigte Card Überblendungen mit CSS 3 Transitions und Animations</li>
<li>Unterstützung des Designs durch setzen entsprechender Klassen bei Orientierungsänderung</li>
<li>Eigene Tap Erkennung und Event Handling des Taps; Dies umgeht die Auslöseverzögerung bei einem Standard <code>onclick</code> Event.</li>
</ul>
<p>Ich empfehle den Einsatz der letzten Revision im Trunk (aktuell 133) des <a href="http://jqtouch.googlecode.com/svn">Subversion Repositiories</a>.</p>
<p>Es gibt dort leider ein paar kleine Probleme, die aber schnell abgestellt sind: Die <code>min-height</code>&#8216;s für die verschiedenen Größen und Orientierungen sind nicht korrekt und vollständig.</p>
<h2>Was ist beim Design zu beachten?</h2>
<p>In erster Linie ist es wichtig, die unterschiedlichen <a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html">Viewportdimensionen</a>, die es zu unterstützen gilt, zu beachten.<br />
Einerseits wird die App zuerst einmal im Safari aufgerufen. Dort haben wir 320 x 416 Pixel im Portrait- und 480 x 268 Pixel im Landscape-Modus zur Verfügung. (Die Adresszeile wird bei einer Web App automatisch ausgeblendet, man kann die 60 Pixel, die diese verbraucht also mitrechnen.)</p>
<p>Andererseits haben wir die Situation, bei der die App vom Home Screen gestartet wird. Hier gibt es kein &#8220;Browser Chrome&#8221;, also keine Bedienelemente mehr. Dadurch stehen 320 x 460 bzw. 480 x 300 Pixel zur Verfügung. Wenn man die Statusleiste auf black-translucent setzt, sogar nochmal 20 Pixel mehr &#8211; der Nutzen davon ist allerdings sehr begrenzt, die Statusleiste bleibt ja trotzdem da und hindert den Nutzer an der Bedienung darunterliegender Elemente.</p>
<p>Die App muß also dementsprechend gestaltet sein, so daß sie mit unterschiedlichen Größen zurechtkommt. Vor allem Hintergrundgrafiken sollten entsprechend angepasst werden. Optimal ist es, den zusätzlichen Platz nicht ungenutzt zu lassen, was natürlich nur in bestimmten Kontexten funktioniert.</p>
<p>Zu beachten ist auch, daß die Navigation vollständig mit eigenen Bedienelementen möglich ist &#8211; insbesondere der &#8220;Zurück&#8221;-Button des Browsers fehlt ja!</p>
<h2>Das position: fixed Problem</h2>
<p>Es liegt nicht weit entfernt, bei einer Web App fixierte Status- oder Toolbars einzubauen.<br />
Da das iPhone die CSS Eigenschaft <code>position: fixed</code> nicht unterstützt, sondern dieses wie<code> position: absolute</code> behandelt und man andererseits <code>&lt;div&gt;</code>s die mit <code>overflow: scroll</code> scrollbar gemacht werden nur sehr benutzerunfreundlich mit <strong>zwei</strong> Fingern scrollen kann (und das auch längst nicht mit so geschmeidigem &#8220;natürlichem&#8221; Feedback), braucht man einen Workaround.</p>
<p>Matteo Spinelli von <a href="http://cubiq.org/">cubiq.org</a> hat meines Wissens hier die am einfachsten zu verwendende Arbeit abgeliefert: <a href="http://cubiq.org/scrolling-div-for-mobile-webkit-turns-3/16">iScroll</a><br />
Ein JavaScript Objekt, daß mit einem Einzeiler beliebige Elemente mit einem Finger scrollbar macht, und dabei die gleiche Natürlichkeit im Scrollverhalten an den Tag legt, wie sonst überall am iPhone gewohnt.</p>
<p>Damit sind fixierte Toolbars kein Problem mehr!</p>
<h2>Und auf anderen Geräten?</h2>
<h3>Palm Pre</h3>
<p>Auf dem Palm Pre funktionieren Touch Web Apps ähnlich gut, leider kann man dort die App nicht ins Menü bringen und der Splash Screen wird nicht angezeigt.</p>
<p>Der zur Verfügung stehende Platz ist auch etwas anders: Der Viewport ist 320 x 460 Pixel (480 &#8211; 20 Pixel für die Statusleiste), allerdings befinden sich unten links und rechts zwei bis drei ca. 50 Pixel große runde Browser Bedienelemente, die den Inhalt überlagern: &#8220;Zurück&#8221; und u.U. &#8220;Vor&#8221; links, &#8220;Neu laden&#8221; bzw. &#8220;Stopp&#8221; (je nach Ladezustand) rechts.</p>
<p>Die Orientierungserkennung ist leider auch nicht verfügbar. Das ist besonders ärgerlich, wenn man weiß, das es sie in nativen Applikationen (die ja in JavaScript geschrieben sind) eben doch gibt!</p>
<p>Wenn man auf explizite horizontale Unterstützung verzichten kann, und am unteren Ende ein bißchen aufpasst, kann man also ohne Probleme auch für Pre anbieten.</p>
<p>Das Palm Pixi ist allerdings ziemlich lästig, weil das einen um 80 Pixel kürzeren Bildschirm hat &#8211; auf die möchte man eher nicht mehr verzichten.</p>
<p><em>Kleines Bonbon</em>: Da Palm webOS Apps ja sowieso in HTML/CSS/JS geschrieben sind, fällt eine Portierung von einer Web App hin zu einer installierbaren webOS App äußerst leicht. Die aktuelle Marktdurchdringung lässt das momentan natürlich nicht besonders interessant erscheinen. Das könnte sich allerdings jederzeit ändern.</p>
<h3>Android</h3>
<p>Von den Android Geräten, die ich bis jetzt in den Fingern hatte oder mir zugetragen wurden (v.a. HTC Magic und Hero) bin ich schwer enttäuscht worden: Die Geschwindigkeit ist unterirdisch, Transitions werden offenbar nicht durch Hardware beschleunigt, Bewegung in animated GIFs ist faktisch nicht zu erkennen.</p>
<p>Das alles wäre noch zu ertragen und mit Abstrichen drumherum zu arbeiten. Allerdings kommts noch schlimmer: Hintergrundbilder von sich überlagernden <code>&lt;div&gt;</code>s werden teilweise einfach gar nicht angezeigt.</p>
<p>Obwohl da eigentlich ein <a href="http://de.wikipedia.org/wiki/WebKit">WebKit</a> wie bei den anderen Geräten am Werk sein sollte, gibts massive Renderfehler. Sehr arm.</p>
<h2>Wichtige Links</h2>
<p>Nochmal schnell zusammengefasst die wichtigen Links aus dem Text:<br />
<a href="http://www.apple.com/de/webapps/whatarewebapps.html">Apple: Was sind Webapps?</a><br />
<a href="http://developer.apple.com/safari/library/documentation/InternetWeb/Conceptual/iPhoneWebAppHIG/MetricsLayout/MetricsLayout.html">Safari Dev Center: Human Interface Guidelines for Webapps</a><br />
<a href="http://www.jqtouch.com/">jQTouch</a><br />
<a href="http://code.google.com/p/jqtouch/">jQTouch bei Google Code</a><br />
<a href="http://cubiq.org/scrolling-div-for-mobile-webkit-turns-3/16">iScroll</a></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://benjaminerhart.com/2010/03/iphone-web-app-game-lessons-learned/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pre and me &#8211; Erster Anwendungsprototyp PrivateSync</title>
		<link>http://benjaminerhart.com/2010/01/pre-and-me/</link>
		<comments>http://benjaminerhart.com/2010/01/pre-and-me/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 13:46:57 +0000</pubDate>
		<dc:creator>tla</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[AppCatalog]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Homebrew Apps]]></category>
		<category><![CDATA[Missing Sync]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[Palm Pre]]></category>
		<category><![CDATA[Pre]]></category>
		<category><![CDATA[Synergy]]></category>
		<category><![CDATA[Synergy Service]]></category>

		<guid isPermaLink="false">http://benjaminerhart.com/2010/01/pre-and-me-erste-anwendung/</guid>
		<description><![CDATA[Inzwischen habe ich bald einen Monat mit dem Gerät herumgespielt und bin dann doch erst mal soweit zufrieden, daß ich es nicht gleich wieder verkaufen werde. :-)

App Catalog
Ich habe das Gerät jetzt an meine deutsche SIM gebunden und habe inzwischen Zugriff auf den App Catalog. (waaaahnsinnig Umfangreich. Keine 100 Apps...)

Das war allerdings ein ziemliches ...]]></description>
			<content:encoded><![CDATA[<p>Inzwischen habe ich bald einen Monat mit dem Gerät herumgespielt und bin dann doch erst mal soweit zufrieden, daß ich es nicht gleich wieder verkaufen werde. <img src='http://benjaminerhart.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<span id="more-310"></span></p>
<h1>App Catalog</h1>
<p>Ich habe das Gerät jetzt an meine deutsche SIM gebunden und habe inzwischen Zugriff auf den App Catalog. (waaaahnsinnig Umfangreich. Keine 100 Apps&#8230;)</p>
<p>Das war allerdings ein ziemliches Theater: Erst mal ein kompletter Reset. Dann will das Ding sich natürlich nur wieder aktivieren lassen, wenn es nach Hause telefonieren kann via Datenverbindung. Da ich keine Lust hatte, nach Deutschland rüber zu fahren, habe ich mir die Roaminggebühren gegönnt.</p>
<p>Aktivierung geht auch, aber &#8211; welch Überraschung &#8211; man kommt immer noch nicht in den App Catalog. Grrrr. Erst nachdem ich dann das nächste Mal in einem deutschen Netz eingebucht war und von dort (über WLAN!) aus auf den Catalog zugegriffen habe, war ich endlich drin. Das ist wirklich saudämlich gelöst.</p>
<h1>The Missing Sync</h1>
<p>Nach viel Suchen habe ich inzwischen auch aufgegeben und <a href="http://www.markspace.com/products/pre/index.html">The Missing Sync</a> bezahlt. Was mich aber ziemlich ärgert: die Synchronisierung von Kontakt- und Kalenderdaten auf seinem Rechner ist eigentlich ein Basisfeature für das ich nicht noch extra zahlen will. Zumal 39,95$ nicht grad ein Pappenstiel sind.</p>
<p><a href="http://www.markspace.com/products/pre/index.html">The Missing Sync</a> funktioniert auch einigermaßen, allerdings kommt man doch häufig in die Situation, daß man irgendwo mit seinem Rechner und seinem Handy ist, wo man gerade kein WLAN hat, in dem beide eingebucht sind und sich auch finden können.</p>
<p>Der Datenaustausch funktioniert nämlich nur über ein (W)LAN, das eine Verbindung ins Internet haben muß (der Handshake der Geräte läuft über den Pairing Server von Mark/Space) und das die direkte Kommunikation der Geräte nicht verhindert &#8211; was v.a. bei (halb)öffentlichen Café Hot-Spots durchaus öfter der Fall ist.</p>
<p>Das Pre verbindet sich auch nicht mit einem Ad-Hoc Netzwerk, daß man mit seinem Rechner initiiert.</p>
<p>Fazit: Es geht, aber lange nicht so schön und flexibel wie bei meinen SonyEricsson Telefonen in Kombination mit Bluetooth und <a href="http://de.wikipedia.org/wiki/ISync">iSync</a>.</p>
<h1>PrivateSync</h1>
<p>Weil mich das alles ziemlich nervt, habe ich ein eigenes Sync Programm angefangen. Das Konzept ist, um es mir erst mal einfach zu machen, allerdings ähnlich wie beim Missing Sync: Es funktioniert über TCP/IP. Es braucht aber keinen Pairing Server &#8211; man muß nur die IP Adresse (oder eine gültige Domain) seines Rechners angeben.</p>
<p>Auf Rechnerseite brauchts einen Webserver, auf dem eine Datei im JSON Format liegt, die die Kontakt- und Kalenderdaten in der Datenstruktur, die <a href="https://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1701">Contacts Service</a> und <a href="https://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1751">Calendar Service</a> brauchen, vorhält.</p>
<p>Der Telefonteil ist als Prototyp grundsätzlich benutzbar, allerdings tut&#8217;s auch nicht viel: Beim ersten Start wird ein PrivateSync <a href="https://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1737">Account</a> angelegt, in dem die Daten abgelegt werden. Im User Interface gibt man die Adresse der Datei an, drückt auf &#8220;Refresh Now&#8221; und wartet, bis die App die Daten eingelesen hat.</p>
<p>Einschränkungen:</p>
<ul>
<li>Momentan funktionieren nur die Kontaktdaten, die Kalenderdaten sind allerdings analog zu handhaben und reine Fleißarbeit.</li>
<li>Es gibt noch keine echte Synchronisation, die Daten im PrivateSync Account werden vollständig mit den Daten vom Server überschrieben. Es gibt allerdings sowohl beim<a href="https://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1701#Contacts-getChanges"> Contacts Service</a> als auch beim <a href="https://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1751#Calendar-getChanges">Calendar Service</a> eine Service Methode <em>getChanges</em> im Synergy Service, der das Syncing leicht macht &#8211; der Weg dahin ist also bereits geebnet.</li>
<li>Es fehlt noch eine Authentifizierung: Damit man die Daten ruhigen Gewissens auf seinen Webspace legen kann und nicht nur auf seinen lokal installierten Webserver, sollte da zumindest eine <a href="http://httpd.apache.org/docs/2.2/howto/auth.html">Basic Auth</a> davor sein.</li>
<li>Der Server/Rechner Teil fehlt noch vollständig. Für meine eigenen Bedürfnisse reicht mir eine Webapplikation, die vCard/vCal Daten in das benötigte JSON umwandelt (Das Apple Adressbuch hat z.B. eine entsprechende Exportfunktion). Das werde ich mir schon in Perl zusammenbasteln &#8211; das ist für solche Datenoperationen ausgesprochen geeignet &#8211; und entsprechende Libraries gibts zum Beispiel bereits mit <a href="http://search.cpan.org/~llap/Text-vCard-2.03/lib/Text/vCard/Addressbook.pm">Text::vCard::Addressbook</a> und <a href="http://search.cpan.org/~srl/Net-ICal-0.15/lib/Net/ICal/Calendar.pm">Net::ICal::Calendar</a>.<br />
Schöner wäre natürlich eine vollständig integrierte Synchronisation, mit Hilfe einer nativen MacOS X Applikation, das die Adressbuch und iCal APIs verwenden. Gerade hier würde ich mich über Unterstützung freuen! Hat jemand Erfahrung damit?</li>
<li>Da der Telefonteil relativ einfach und offen ist, wäre eine Integration in eigene CRM Systeme, online Adressverwaltungen etc. sehr einfach zu bewerkstelligen. Auch existierende Social Networks könnte man damit anbohren. Facebook ist ja schon von Palm abgedeckt. Ich hätte momentan vor allem <a href="http://www.xing.com/">XING</a> im Visier. Leider haben die kein simples REST API o.ä. veröffentlicht und gehen mit Ihren Schnittstellen auch nicht gerade hausieren &#8211; Informationen sind da etwas mühsam zusammenzuklauben. Sie konzentrieren sich offenbar ganz auf <a href="http://wiki.opensocial.org/index.php?title=XING">OpenSocial</a>. Wäre interessant, ob man via OpenSocial an die Kontaktdaten seiner Kontakte kommen kann.</li>
</ul>
<p>Den Prototyp (leider noch furchtbar schlecht dokumentiert und mit viel Experimentalcode) gibts hier:</p>
<pre><a href="http://github.com/tladesignz/PrivateSync">github.com/tladesignz/PrivateSync</a>
</pre>
<p>Sobald es einen vorzeigbaren Zustand erreicht, werde ich das bei <a href="http://www.precentral.net/">PreCentral</a> anbieten &#8211; bis dahin bleibts aber erst mal nur zum basteln bei GitHub.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://benjaminerhart.com/2010/01/pre-and-me/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pre aufgebohrt</title>
		<link>http://benjaminerhart.com/2009/12/pre-aufgebohrt/</link>
		<comments>http://benjaminerhart.com/2009/12/pre-aufgebohrt/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 16:33:37 +0000</pubDate>
		<dc:creator>tla</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[AppCatalog]]></category>
		<category><![CDATA[Hello World]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Homebrew Apps]]></category>
		<category><![CDATA[Missing Sync]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[Palm Pre]]></category>
		<category><![CDATA[Pre]]></category>
		<category><![CDATA[Synergy]]></category>
		<category><![CDATA[Synergy Service]]></category>

		<guid isPermaLink="false">http://benjaminerhart.com/?p=301</guid>
		<description><![CDATA[Ich habe weiter herumgespielt und geforscht und bin über einige interessante Dinge gestolpert.
Homebrew Apps
Der AppCatalog funktioniert ja nicht, solange ich keine Lust habe, das Gerät bzw. den zugehörigen Palm Account an eine deutsche SIM zu binden. Deshalb habe ich mich mal nach Alternativen umgeschaut und prompt einiges gefunden:

PreCentral hat ein Homebrew App Verzeichnis mit ...]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-304" title="Hello World auf echtem Pre" src="/wp-content/uploads/2009/12/predev.jpg" alt="Hello World auf echtem Pre" width="290" height="442" />Ich habe weiter herumgespielt und geforscht und bin über einige interessante Dinge gestolpert.</p>
<h1>Homebrew Apps</h1>
<p>Der AppCatalog funktioniert ja nicht, solange ich keine Lust habe, das Gerät bzw. den zugehörigen Palm Account an eine deutsche SIM zu binden. Deshalb habe ich mich mal nach Alternativen umgeschaut und prompt einiges gefunden:</p>
<p><a href="http://www.precentral.net/">PreCentral</a> hat ein <a href="http://www.precentral.net/homebrew-apps">Homebrew App Verzeichnis</a> mit einer eigenen <a href="http://www.precentral.net/homebrew-apps/filecoaster">feinen Installer App</a>.<a href="http://www.precentral.net/homebrew-apps"></a></p>
<p>Diese muß erst mal händisch auf das Gerät gebracht werden, danach kann man alle weiteren Homebrew Apps ohne große Umstände mit dessen Hilfe installieren.</p>
<p>Für Leute, die keine Entwicklertools installieren wollen und auf Windows oder Mac unterwegs sind, gibt es eine <a href="http://www.precentral.net/how-add-homebrew-apps-patches-and-themes">Anleitung</a> und Hilfstools, um das zu bewerkstelligen.<span id="more-301"></span></p>
<p>Wenn man die Entwicklungstools bereits installiert hat, brauch man das nicht, sondern kann folgendermaßen vorgehen:</p>
<ul>
<li>Zuerst das Gerät in den Entwicklungsmodus bringen, wie bei <a href="http://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1639#InstallingEclipsewiththeSDK-dev_mode">Palm</a> oder <a href="http://www.precentral.net/how-add-homebrew-apps-patches-and-themes">PreCentral</a> beschrieben. (Ja, das ist der berühmte &#8220;<a href="http://en.wikipedia.org/wiki/Konami_&lt;/code&gt;code">Konami Code</a>&#8220;)</li>
<li>Dann das Gerät per USB mit dem Rechner verbinden (nur laden)</li>
<li>Auf der Kommandozeile des Rechners <code>novaterm</code> bemühen</li>
<li>Schwups ist man als root auf dem Pre eingeloggt &#8211; das ging erstaunlich schnell, ganz ohne Verbindungseinstellungstrallalla (<a href="http://www.webos-internals.org/wiki/Accessing_Linux_Using_Novaterm">ausführliche Anleitung bei webOS Internals</a>)</li>
<li>Die <a href="http://www.precentral.net/homebrew-apps/filecoaster">Installer App &#8220;Filecoaster&#8221;</a> auf den Rechner laden und in ein Verzeichnis schmeissen, daß vom dort installierten Web Server erreichbar ist. Alternativ nimmt man z.B. seinen Webspace/Webserver im Internet</li>
<li>Dann wie in <a href="http://www.webos-internals.org/wiki/Tutorials_webOS_Installing_An_Ipk#3b.29_To_Install_Pre_Apps_Using_PuTTY.28Wifi.29">dieser Anleitung</a> folgendes auf dem Pre ausführen:</li>
</ul>
<p><code>root@palm-webos-device:/# /usr/bin/ipkg -o /var install http://[rechnerip|name]/com.palm_.net_.precoder.fcoaster_1.1.6_all.ipk<br />
root@palm-webos-device:/# luna-send -n 1 palm://com.palm.applicationManager/rescan {}</code></p>
<ul>
<li>Das wars schon. Filecoaster ist installiert und kann direkt verwendet werden.</li>
</ul>
<p>Hier meine vorläufige Homebrew App Empfehlungsliste:</p>
<ul>
<li><a href="http://www.precentral.net/homebrew-apps/preload">Preload</a>, ein weiterer App Manager mit noch mehr Apps und ein paar Zusatzfeatures</li>
<li><a href="http://www.precentral.net/homebrew-apps/tweefree">TweeFree</a>, Twitter Client</li>
<li><a href="http://www.precentral.net/homebrew-apps/keyring">Keyring</a>, Zugangsdatenverwaltung</li>
<li><a href="http://www.precentral.net/homebrew-apps/what-my-ip">What Is My IP</a>, zeigt die aktuell zugewiesene IP</li>
<li><a href="http://www.precentral.net/homebrew-apps/whois-mobile">WHOIS Mobile</a>, whois Abfrage</li>
<li><a href="http://www.precentral.net/homebrew-apps/quick-system-tasks">Quick System Tasks</a>, bündelt einige Einstellungen des Pre</li>
</ul>
<h1>Private Kontaktdaten</h1>
<p>Nachdem sich in mir innerlich alles sträubt, schon wieder viel Geld auszugeben für <a href="http://markspace.com/products/pre/mac/palm-pre-sync-overview.html">The Missing Sync</a>, habe ich ein wenig darüber nachgedacht, wie ich das Pre dazu kriege Kontakte und Kalenderdaten aufzunehmen, <em>ohne</em> sie irgendwohin ins Netz zu synchronisieren (sei es nun Palm, Google, Yahoo oder was auch immer).</p>
<p>Es gibt ja bereits den <a href="http://www.palm.com/us/support/downloads/pre/migration/de/index.html">Datenübertragungsassistenten von Palm</a>. Alles was ich also offenbar noch brauche, ist ein eigener Synergy Service, der die Daten aufnimmt, statt dem Palm Konto Service.</p>
<p>Die <a href="http://developer.palm.com/index.php">Entwicklerdokumentation von Palm</a> ist ja leider nicht besonders umfangreich. <a href="http://www.weboshelp.net/getting-started-with-webos/458-palm-synergy-services">webOShelp</a> hilft aber hier weiter.</p>
<p>Das wird also mein erstes Projekt werden: Eine webOS App schreiben, die einen eigenen Synergy Service bereitstellt um Kontakt- und Kalenderdaten aufzunehmen. Synchronisieren soll das Ding erst mal noch nicht können müssen, aber auf lange Sicht wäre das natürlich fein. Im Endeffekt also ein Missing Sync Nachbau.</p>
<p>Natürlich will ich das als Open Source veröffentlichen.</p>
<p>Jeder, der mich bei dem Vorhaben unterstützen will, ist willkommen! Nur raus mit dem Know-How und der Manpower!</p>
<h1>Hello World</h1>
<p>Schließlich und endlich ein weiterer Erfolg: Ich hab schon vor einiger Zeit das <a href="http://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1758">Hello World Tutorial</a> vollständig durchgemacht und heute selbiges auf dem Gerät zum laufen gebracht. Das macht wirklich Spaß. Gerät anstecken (Entwicklermodus muß freigeschalten sein, s.o.), in der Eclipse unter <code>Run -&gt; Run Configurations -&gt; Mojo Application -&gt; HelloWorld -&gt; Main -&gt; Target</code> einfach &#8220;Palm Device&#8221; statt &#8220;Emulator&#8221; auswählen, dann &#8220;Run&#8221; wählen. Das wars schon!</p>
<p>Jiiiihaaa!</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://benjaminerhart.com/2009/12/pre-aufgebohrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mein neues Palm Pre</title>
		<link>http://benjaminerhart.com/2009/12/mein-neues-palm-pre/</link>
		<comments>http://benjaminerhart.com/2009/12/mein-neues-palm-pre/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 00:12:46 +0000</pubDate>
		<dc:creator>tla</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[Palm Pre]]></category>
		<category><![CDATA[Pre]]></category>
		<category><![CDATA[Smartphone]]></category>

		<guid isPermaLink="false">http://benjaminerhart.com/?p=293</guid>
		<description><![CDATA[Am Wochenende habe ich endlich mein neues Palm Pre bekommen und bin damit auch offiziell vom Feature Phone zum Smartphone Besitzer aufgestiegen.

Nachdem ich nun eine Weile damit herumgespielt habe, hinterlässt es mich mit gemischten Gefühlen.
Plus

	Superhochauflösendes Display
	Multitouchbedienung ist sehr geschmeidig
	Multitasking (siehe Bild)
	An sich gute Verarbeitung (mit Einschränkung - siehe unten)
	Jede Menge Sensoren: Näherungssensor, GPS, Kompass, ...]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-292" title="Mein Palm Pre" src="/wp-content/uploads/2009/11/meinpre.jpg" alt="Mein Palm Pre" width="201" height="428" />Am Wochenende habe ich endlich mein neues <a href="http://www.palm.com/de/de/products/phones/pre/index.html">Palm Pre</a> bekommen und bin damit auch offiziell vom <a href="http://en.wikipedia.org/wiki/Feature_phone#Handsets">Feature Phone </a>zum <a href="http://de.wikipedia.org/wiki/Smartphone">Smartphone</a> Besitzer aufgestiegen.</p>
<p>Nachdem ich nun eine Weile damit herumgespielt habe, hinterlässt es mich mit gemischten Gefühlen.</p>
<h3>Plus</h3>
<ul>
<li>Superhochauflösendes Display</li>
<li>Multitouchbedienung ist sehr geschmeidig</li>
<li>Multitasking (siehe Bild)</li>
<li>An sich gute Verarbeitung (mit Einschränkung &#8211; siehe unten)</li>
<li>Jede Menge Sensoren: Näherungssensor, GPS, Kompass, Lagesensor</li>
<li>USB Schnittstelle &#8211; als Laufwerk verwendbar</li>
<li>Austauschbarer Akku</li>
<li>Gestenfeld unter dem Display</li>
</ul>
<h3>Minus</h3>
<p><span id="more-293"></span></p>
<ul>
<li>Verarbeitung ist eigentlich sehr gut, bis auf eines: die beiden Hälften des Geräts lassen sich leicht gegeneinander verdrehen &#8211; das hätte besser gelöst werden müssen</li>
<li>USB Schnittstelle ist unter einer fummeligen Abdeckung</li>
<li>Ausschalten erfordert seit dem Update auf webOS 1.3.1 einen Staatsakt:
<ul>
<li>Ausschaltknopf laaaaaang drücken</li>
<li>dann nacheinander <strong>3</strong> (in Worten: <strong>DREI</strong>!) Buttons bestätigen: &#8220;Stromversorgung&#8221;, &#8220;Ausschalten/Akku wechseln&#8221; und &#8220;Ausschalten&#8221;</li>
</ul>
</li>
<li>Auf der Tastatur fehlen mir Cursortasten um in den Formularen zu navigieren</li>
<li>Kein Syncing via Bluetooth mit Apples iSnyc/iCal/Addressbuch, stattdessen nur Drittanbieterapplikationen (<a href="http://www.markspace.com/products/pre/mac/palm-pre-sync-overview.html">The Missing Sync von Mark/Space</a>, <a href="http://www.cnet.de/downloads/mac/259684/download/the+missing+sync+for+palm+pre.htm">Demo Version</a>) oder via Datenkrake Google. (<a href="http://www.flexiblesbuero.com/">flexiblesbuero.com</a> hat darüber zwei Artikel: <a href="http://www.flexiblesbuero.com/2009/11/synchronisation-des-apple-adressbuchs-und-ical-mit-dem-palm-pre/">Snyc mit Missing Sync</a>, <a href="http://www.flexiblesbuero.com/2009/11/palmpre-und-macadressbuch/">via Google</a>) Das ist sehr arm, vor allem, wenn man daran denkt, wieviel <a href="http://www.golem.de/0910/70230.html">Energie sie darauf verwendet haben</a>, direkt mit iTunes zu synchronisieren. (Und inzwischen den <a href="http://www.golem.de/0909/70018.html">Schwanz eingezogen haben</a>.)</li>
<li><strong>Major Fail</strong>: Ich erreiche den App Catalog nicht. Offenbar haben das <a href="http://www.nexave.de/forum/37539-nach-webosupdate-wo-sind-die-apps-hin_2.html">Problem alle Leute in Ländern</a>, in denen das Gerät nicht offiziell verkauft wird. Ich habe das Palm Profil gegen eine österreichische SIM gebunden, das werde ich wohl demnächst ändern. Allerdings scheint es auch in Deutschland Probleme zu geben weil sich Palm wohl was ganz besonders schlaues ausgedacht hat: Es werden nur noch Applikationen für Länder angezeigt, <a href="http://www.precentral.net/131-update-cuts-down-numbers-euro-app-catalog">die für diese und für deren Landessprache</a> explizit freigegeben wurden.</li>
</ul>
<p>Wegen dem Ausschaltgedöns und dem App Catalog Problem, das laut den Berichten erst mit dem Update auftritt, kann ich deshalb momentan jedem nur raten das<strong> Update nicht zu machen</strong>! Mir sind nämlich auch keine wesentlichen Unterschiede zwischen den Versionen aufgefallen.</p>
<p>Ganz generell schließlich ist mir das Gerät respektive Palm viel zu neugierig. Leider ist das bei Apples iPhone und bei Googles Android Plattform auch nicht anders.</p>
<p>Am liebsten würde das Ding ständig alle Daten absaugen und zu Palm nach Amerikanien schicken, zur &#8220;Datensicherung&#8221;. Na danke. Zum Glück kann man das abschalten.</p>
<p>Die Höhe ist aber, daß es mit Bordmitteln unmöglich ist, Kontakt- und Kalenderdaten auf das Gerät zu bekommen, <em>ohne</em> daß diese gleich noch mit einem Internetservice synchronisiert werden.</p>
<p>Es gibt zwar Software von Palm, mit der man einmalig <a href="http://www.palm.com/us/support/downloads/pre/migration/de/index.html">seine PIM Daten zum Pre (offline) übertragen kann</a>, das Gerät will diese aber dann nur importieren, wenn es gleichzeitig die Daten zum Palm Server oder zum Google Server synchronisiert.</p>
<p><em>Und solche sensiblen Daten werde ich ganz sicher nicht mit denen teilen!</em></p>
<p>Einziger Ausweg aus dem Dilemma: Eigenen Exchange Server installieren. Grrrr. M$ Software werde ich ganz sicher nicht anschaffen, und <a href="http://www.zarafaserver.de/">Zarafa</a> habe ich bei meinem Arbeitgeber schon versagen gesehen. Mal schauen, was sonst noch bleibt.</p>
<p>Zum Schluß bleibt dann noch zu sagen: Da das Gerät ohne Anmeldung bei Palm nicht benutzbar ist, gilt wohl das gleiche wie fürs iPhone:</p>
<blockquote><p><span><span>Ich sach ja: Wer ein iPhone kauft, erwirbt die Moralvorstellungen von Apple gleich mit: <a rel="nofollow" href="http://u.nu/7uqy3" target="_blank">http://u.nu/7uqy3</a> (<a href="http://twitter.com/sixtus/status/6050239160">Mario Sixtus</a>)<a rel="nofollow" href="http://u.nu/7uqy3" target="_blank"><br />
</a></span></span></p>
<p><span><span><br />
</span></span></p></blockquote>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://benjaminerhart.com/2009/12/mein-neues-palm-pre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palm und ich</title>
		<link>http://benjaminerhart.com/2009/11/palm-und-ich/</link>
		<comments>http://benjaminerhart.com/2009/11/palm-und-ich/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 22:47:00 +0000</pubDate>
		<dc:creator>tla</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[Palm Mojo SDK]]></category>
		<category><![CDATA[Palm Pre]]></category>
		<category><![CDATA[webOS]]></category>

		<guid isPermaLink="false">http://benjaminerhart.com/?p=283</guid>
		<description><![CDATA[Nach langem hin- und herüberlegen bin ich nun auch endlich im Club der coolen Smartphonebesitzer angekommen.

Ich habe mir ein Palm Pre bestellt.

Weil ichs nun gar nicht mehr erwarten konnte, gleich mal das SDK installiert und das Eclipse Plugin.

Wer sich (noch) keinen eigenen Account bei Palm anlegen will: BugMeNot hat einen gelistet.

Ich bin schwer begeistert ...]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-285 alignright" title="webOS Hello World" src="/wp-content/uploads/2009/11/weboshelloworld.png" alt="webOS Hello World" width="320" height="524" />Nach langem hin- und herüberlegen bin ich nun auch endlich im Club der coolen Smartphonebesitzer angekommen.</p>
<p>Ich habe mir ein <a href="http://de.wikipedia.org/wiki/Palm_Pre">Palm Pre</a> bestellt.</p>
<p>Weil ichs nun gar nicht mehr erwarten konnte, gleich mal das <a href="http://developer.palm.com/index.php?option=com_ajaxregister&amp;view=register&amp;sdkdownload">SDK</a> installiert und das <a href="http://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1639">Eclipse Plugin</a>.</p>
<p>Wer sich (noch) keinen eigenen Account bei Palm anlegen will: <a href="http://www.bugmenot.com/view/developer.palm.com">BugMeNot</a> hat einen gelistet.</p>
<p>Ich bin schwer begeistert und fühle mich gleich wie zuhause. Alle Applikationen werden in HTML, CSS und JavaScript gebaut. Der Emulator setzt auf <a href="http://de.wikipedia.org/wiki/VirtualBox">VirtualBox</a> auf, das Eclipse Plugin macht gleich den Build und wirft die App in den Emulator.</p>
<p>Nach 5 Minuten ist das erste Ergebnis zu sehen.</p>
<p>Jetzt brauche ich nur noch eine Idee für eine Applikation! <img src='http://benjaminerhart.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Früher konnte ich mich gar nicht mit Palm anfreunden. Die PDAs mit den Stiften waren einfach zu fummelig.<br />
<span id="more-283"></span><br />
Das webOS scheint aber ein richtig guter Wurf geworden zu sein. Viele Dinge von Apple abgeschaut und eigene Ideen mit eingebaut. Insbesondere die Entscheidung, daß Applikationen rein in Webtechnologien entwickelt werden, könnte der Platform enormen Auftrieb geben.</p>
<p>Seine ganze Entwicklermannschaft erst auszugliedern in eine <a href="http://de.wikipedia.org/wiki/PalmSource">eigene Firma</a> und sie dann anschließend am <a href="http://de.wikipedia.org/wiki/Access_Linux_Platform">ausgestreckten Arm verhungern zu lassen</a>, kann sich offenbar manchmal auszahlen&#8230; (Nicht das ich das jetzt überall empfehlen könnte. *hust*)</p>
<p>Ich bin gespannt auf das eigentliche Gerät. Mal sehen, ob der Akku länger durchhält als bei der iPhone und Android Konkurrenz.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://benjaminerhart.com/2009/11/palm-und-ich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

