<?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>Dave Troy: Fueled By Randomness &#187; iPhone</title>
	<atom:link href="http://davetroy.com/posts/category/mobile/iphone-mobile/feed" rel="self" type="application/rss+xml" />
	<link>http://davetroy.com</link>
	<description>Design, Entrepreneurship, Economics and Software</description>
	<lastBuildDate>Mon, 02 Aug 2010 14:19:35 +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>I Hate Mice</title>
		<link>http://davetroy.com/posts/i-hate-mice</link>
		<comments>http://davetroy.com/posts/i-hate-mice#comments</comments>
		<pubDate>Fri, 21 Nov 2008 10:54:25 +0000</pubDate>
		<dc:creator>davetroy</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[visualization]]></category>
		<category><![CDATA[flickrvision]]></category>
		<category><![CDATA[interaction]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[metaphor]]></category>
		<category><![CDATA[mice]]></category>
		<category><![CDATA[parc]]></category>
		<category><![CDATA[twittervision]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://davetroy.com/?p=122</guid>
		<description><![CDATA[At Xerox Parc in the 1970&#8242;s, Alan Kay fostered the innovations that form the foundation of modern computing. Windowing, mice, object oriented languages, laser printing, WYSIWYG, and lots of other stuff we take for granted today either had its start or was fleshed out at Xerox Parc. The venerable mouse, which enabled direct manipulation of content on [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fi-hate-mice"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fi-hate-mice&amp;source=davetroy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>At Xerox Parc in the 1970&#8242;s, Alan Kay fostered the innovations that form the foundation of modern computing. Windowing, mice, object oriented languages, laser printing, WYSIWYG, and lots of other stuff we take for granted today either had its start or was fleshed out at Xerox Parc.</p>
<p>The venerable mouse, which enabled direct manipulation of content on the screen, was just one of a few innovations that was screen-tested as a possible heir to the venerable <strong>cursor</strong> and text terminal metaphor which had predominated since the dawn of computing.</p>
<p>Mice, trackballs, light pens, tablets, and Victorian-looking headgear tracking everything from brainwaves to head and eye movements were all considered as the potential input devices of the future. No doubt there were other metaphors besides windows considered as well. Hypercard, anyone?</p>
<p>Steve Jobs, by selecting the mouse as the metaphor of choice for the Lisa and subsequent Macintosh computers, sealed the deal.  Within a year, Bill Gates, by stealing the same design metaphor for use in Windows 1.0, finished the deed.  By 1986, the mouse was a <em>fait accompli.</em></p>
<p>Since the dawn of the Mac and Windows 1.0, we&#8217;ve taken for granted the notion that the mouse is and will be the primary user interface for most personal computing and for most software.</p>
<p>However, computing is embedded in every part of our lives today, from our cell phones to our cars to games and zillions of other devices around the house, and those devices have myriad different user interfaces.  In fact, creating new user experiences is central to the <strong>identity</strong> of these technologies.  What would an iPhone be without a touch screen?  What would the Wii be without its Wiimotes?  What, indeed, is an Xbox 360 but a PC with, uh, lipstick and a different user interface metaphor?</p>
<p>(An aside: How awesome would it be if the iPhone, Wii, and Xbox 360 all required the use of a mouse?  People fidgeting on a cold day, taking out their iPhone, holding it in their left hand, plugging in their mouse, working it around on their pants to make a call.  Kids splayed out on the rumpus room floor, mousing around their Mario Karts. Killer, souped up force-feedback mice made just for killing people in Halo.  Mice everywhere, for the win.)</p>
<p>So, what&#8217;s with the rant?  Simply that the web has taken a bad problem &#8212; our over-reliance on mice &#8212; and made it even more ubiquitous than it was in the worst days of windowing UI&#8217;s.</p>
<h3><strong>&#8220;And then if you click here&#8230;&#8221;</strong></h3>
<p>No, here &#8212; not over there.  Click here first.  Scroll down, ok, then click submit.  Now click save.</p>
<p>See the problem?  The reliance on the mouse metaphor on the web is fraught with two hazards.</p>
<ol>
<li>Mice require users to become collaborators in your design.</li>
<li>Each user only brings so much &#8220;click capital&#8221; to the party.</li>
</ol>
<h3><strong>Catch My Disease</strong></h3>
<p>We&#8217;ve all had the experience of using a site or app that requires a great deal of either time or advance knowledge to fully utilize.</p>
<p>You know the ones &#8212; the ones with lots of buttons and knobs and select boxes and forms just waiting for you to simply click here, enter the desired date, choose the category, then get the subcategory, choose three friends to share it with, then scroll down and enter your birthdate and a captcha (dude) and then simply press &#8220;check&#8221; to see if your selection is available for the desired date; if it is, you&#8217;ll have an opportunity to click &#8220;confirm&#8221; and your choice will be emailed to you, at which point you will need to click the link in the email to confirm your identity, and you&#8217;ll be redirected back to the main site at which point you&#8217;ll have complete and total admin control over your new site.  Click here to read the section on &#8220;Getting Started&#8221;, and you can click on &#8220;Chat with Support&#8221; at any time if you have any questions.</p>
<h3><strong>What the hell do these sites want from you?</strong></h3>
<p>If these sites are trying to provide a service, why do they need <strong>you</strong> to do so much to make them work?  Sure, some stuff is complex and requires information and processes and steps to empower them, but when you ask users to participate too much as <strong>key elements in your design</strong>, you create frustration, resentment, and ultimately rage.  That&#8217;s cool if that&#8217;s your goal, but if you&#8217;re trying to get happy users, you&#8217;ve done nothing to advance that cause.  So, it shouldn&#8217;t be about &#8220;all you have to do is click here and here.&#8221; Ask less of your users.  Do more for them.  Isn&#8217;t that what <strong>service</strong> is all about?</p>
<h3><strong>Limited Click Capital</strong></h3>
<p>Sometimes, people just want to be <strong>served</strong> — even entertained or enchanted. They don&#8217;t want to become the slavish backend to a maniacal computer program that requires 6 inputs before it can continue.  Is the user in service of the computer, or is the computer serving the user?  I always thought it was the latter.</p>
<p>I&#8217;ll never cease to be instructed by the lessons learned from developing my sites <a href="http://twittervision.com" target="_blank">Twittervision</a> and <a href="http://flickrvision.com" target="_blank">Flickrvision</a>. Both sites do something uncommon &#8212; they provide passive entertainment, enchantment, and insight in a world where people are asked to click, select, participate, scroll, sign up, and activate. It&#8217;s sit back and relax and contemplate, rather than decipher, decide and interact.  Surely there are roles for both, but people are so completely tired of deciphering, that having a chance to simply watch passively is a joyful respite in a world of what is mostly full of badly designed sites and interactions. This alone explains their continued appeal.</p>
<p>People come to sites with only so much &#8220;click capital,&#8221; or willingness to click on and through a site or a &#8220;proposed interaction.&#8221;  This is why site bounce rates are usually so high.  People simply run out of steam before they have a chance to be put through your entire Rube Goldberg machine.  Make things easier for them by demanding fewer clicks and interactions.</p>
<h3><strong>Make Computing Power Work For Your Users</strong></h3>
<p>Truism alert: we live in an age with unprecedented access to computing power.  What are you going to do with it?  How are you going to use it to enchant, delight, and free your users?  Most designs imprison their users by shackling them to the design, turning them into nothing more than steps 3, 6, 8, 9, and 11 of a 12 part process.  How are you going to unshackle your users by making them &#8212; and their unfettered curiosity &#8212; the first step in a beautiful, infinitely progressive algorithm?</p>
<h3><strong>Predict and Refine</strong></h3>
<p>Forms and environments that rely on excessive interaction typically make one fatal assumption: that the user knows what they want. Most users don&#8217;t know what they want, or they can&#8217;t express it the way you need to know it, or they click the wrong thing.  <strong>Remove that choice.</strong></p>
<p>Do your best to help your users along by taking a good guess at what they want, and then allow them to refine or steer the process.</p>
<p>Remember, you&#8217;re the one with the big database and the computers and the web at your disposal: how are you going to help the user rather than asking the user to help you?  You&#8217;re advantaged over the user; make it count for something.</p>
<h3><strong>Don&#8217;t Think About Mice</strong></h3>
<p>Mice lead to widgets. Widgets lead to controls. Controls lead to forms. Forms lead to hate. How are you going to break free from this cycle and give your users something compelling and useful with the minimum (and most appropriate) interaction? What is appropriate interaction?</p>
<p>It depends.  What if you rely on gestures, or mouseovers, or 3 yes or no questions in big bold colors?  That&#8217;s minimal and simple.  It  may be just what you need to empower your idea and serve your users.</p>
<p>I&#8217;ve been working with the WiiMote and the iPhone a lot lately, and trying to use touch screens, accelerometers, and the Wii&#8217;s pitch and roll sensors to create new kinds of interaction.  Maybe this is right for your work.</p>
<p>Think about it and don&#8217;t assume traditional mouse/web/form interactions. Sure, sometimes they are the right and only tool for the job, but if you want to stand out and create compelling experiences, they surely can no longer be the central experience of your design.</p>
<h3><strong>Long Live the Cursor</strong></h3>
<p>Back in the early days of GUIs, there were lots of people who contended that no serious work would ever get done in a window and that the staple of computing and business would be the DOS metaphor and terminal interactions.  There have been dead-enders as long as there have been new technologies to loathe.  I&#8217;m sure somewhere there was a vehement anti-steel crowd.</p>
<p>The mouse, the window, and HTML controls and forms are the wooden cudgels of our era &#8212; useful enough for pounding grain, but still enslaving us in the end.  How will <strong>you</strong> use the abundance of computing power, and new user interface metaphors to free people to derive meaning and value?</p>
]]></content:encoded>
			<wfw:commentRss>http://davetroy.com/posts/i-hate-mice/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SocialDevCampEast2 Recap</title>
		<link>http://davetroy.com/posts/socialdevcampeast2-recap</link>
		<comments>http://davetroy.com/posts/socialdevcampeast2-recap#comments</comments>
		<pubDate>Fri, 07 Nov 2008 16:58:22 +0000</pubDate>
		<dc:creator>davetroy</dc:creator>
				<category><![CDATA[baltimore]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[socialdevcamp]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[Community]]></category>

		<guid isPermaLink="false">http://davetroy.com/?p=90</guid>
		<description><![CDATA[I&#8217;m finally recovered after a really exhausting week that included SocialDevCamp and the wild ride of Twitter Vote Report. SocialDevCampEast2 went off without a hitch on Saturday at University of Baltimore.  Once again, some of the best and brightest developers, entrepreneurs and social media gurus gathered to trade ideas and talk about the future of [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fsocialdevcampeast2-recap"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fsocialdevcampeast2-recap&amp;source=davetroy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;m finally recovered after a really exhausting week that included SocialDevCamp and the wild ride of <a href="http://twittervotereport.com">Twitter Vote Report</a>.</p>
<p><img src="http://barcamp.pbwiki.com/f/socialdevcampfall-1.png" alt="" width="450" /></p>
<p>SocialDevCampEast2 went off without a hitch on Saturday at University of Baltimore.  Once again, some of the best and brightest developers, entrepreneurs and social media gurus gathered to trade ideas and talk about the future of the web.</p>
<p>One thing we try to do at SocialDevCamp is vote on the sessions, to make sure they are things that people really want to hear about, or at least size the discussions to the right rooms.  We ran 5 rooms all day in 5 sessions plus lunch, for a total of 25 sessions! Check out the <a href="http://barcamp.pbwiki.com/SocialDevCampEast2" target="_blank">wiki</a> to see the sessions that were held.</p>
<p>Personally, I enjoyed the conversation on location technology, and why location-based social networks have yet to reach critical mass.  Most folks felt that there was a technological barrier &#8212; it&#8217;s just too hard to continuously update your location with current device and battery constraints &#8212; and others questioned what incentives people have to update their locations.  We decided that those incentives probably needed to be tuned in order to see a successful location-based service emerge, and that there may also be benefit for people sharing location-related information anonymously.  Great talk, and I&#8217;m still thinking about what incentives might make LBS actually work.</p>
<p>We did a session on Twitter Vote Report, which was awesome because we were actually able to recruit some members of the crowd to do some work on the project!  Bryan Liles and John Trupiano contributed some great work to the codebase, some while sitting in the session!  We talked about the overall architecture of the project, and the fact that it was put together in just two short weeks of coding!</p>
<p>There was a good conversation about iPhone development, introducing people to the platform and answering questions about the platform.  Many seemed to be glad to get a feel for Cocoa and I wouldn&#8217;t be surprised if several of the folks there end up working on the platform!</p>
<p>Alex Hillman of Philadelphia&#8217;s Indy Hall helped to lead a discussion on co-working in Baltimore, and by the end of the session, we had actually <strong>launched</strong> co-working in Baltimore, with a mailing list and a set of great ideas for taking things forward.  Yesterday, we held our first &#8220;official&#8221; co-working meetup at Bluehouse in Baltimore; I&#8217;ll write more about the co-working initiative separately.</p>
<p>Because I wasn&#8217;t in the other sessions, I can&#8217;t say what all was said in them, but I heard good things about the conversations on data portability, source code management with Git, and crowdsourcing. If you were in one of the sessions, feel free to leave some comments here or links to your own blog!</p>
<p>Ann Bernard helped put together an awesome party for SocialDevCamp at Metro Gallery with great food from Tapas Teatro and an open bar.  And live music from Natasha El-Sergany, KADMAN, and Ra-Ra-Rasputin&#8230; A great way to end the day, and I can say that by the time it was all over, I had talked to a few hundred people and was completely exhausted!</p>
<p>This morning, Mike Subelsky, a friend and one of the organizers of the recent and fabulous <a href="http://ignitebaltimore.com">Ignite Baltimore</a> said via email, &#8220;It is not an exaggeration to say that SDCE has totally changed my life,&#8221; referring to the first SocialDevCamp held in May. Not to sound self-congratulatory, but the same is true for me.</p>
<p>SocialDevCamp is one of a few things sparking a renaissance here in the Baltimore/Washington area, giving rise to events like Ignite and to movements like co-working.  With the social media tools available now, this sort of thing is finally possible to do, and it&#8217;s hugely gratifying to see it happening!</p>
<p>See you next spring for SocialDevCampEast3!</p>
]]></content:encoded>
			<wfw:commentRss>http://davetroy.com/posts/socialdevcampeast2-recap/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SocialDevCamp East + TwitterVoteReport = Busy</title>
		<link>http://davetroy.com/posts/socialdevcamp-east-twittervotereport-busy</link>
		<comments>http://davetroy.com/posts/socialdevcamp-east-twittervotereport-busy#comments</comments>
		<pubDate>Fri, 31 Oct 2008 23:54:20 +0000</pubDate>
		<dc:creator>davetroy</dc:creator>
				<category><![CDATA[baltimore]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[socialdevcamp]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[visualization]]></category>
		<category><![CDATA[voip]]></category>
		<category><![CDATA[election]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twittervotereport.com]]></category>

		<guid isPermaLink="false">http://davetroy.com/?p=76</guid>
		<description><![CDATA[Being busy seems to always come in spurts for me&#8230; just when it looks like I&#8217;ve got too much to do already, something cool turns up and takes things to whole new level of busy. That would be this week. SocialDevCamp East, the barcamp-style unconference that I started with some friends last spring is back [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fsocialdevcamp-east-twittervotereport-busy"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fsocialdevcamp-east-twittervotereport-busy&amp;source=davetroy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Being busy seems to always come in spurts for me&#8230; just when it looks like I&#8217;ve got too much to do already, something cool turns up and takes things to whole new level of busy.</p>
<p><img src="http://barcamp.pbwiki.com/f/socialdevcampfall-1.png" alt="" width="450" /></p>
<p>That would be this week. SocialDevCamp East, the barcamp-style unconference that I started with some friends last spring is back tomorrow, and that&#8217;s certainly required some coordination and planning.  That would have been plenty.  We have over 200 RSVP&#8217;s now (between the Wiki and Facebook) and we expect a truly incredible day of networking and learning.  See you tomorrow!</p>
<p>The other big news of the last two weeks has been the TwitterVoteReport project, for which I&#8217;ve been acting as defacto CTO since about October 18th.  This is a great project, a great cause, and an awesome idea.  The data we collect will be an archival quality primary source document for future generations to study the evolution of the election process.</p>
<p>We have five distinct data sources coming in about people&#8217;s experience at their polling places: Twitter, Telephone, Direct SMS, and Apps for Android and iPhone.  These are all normalized and aggregated into a single database and reviewed by humans for maximum accuracy.  The data will then be made available in real time to anyone who wants it &#8212; from the media to watchdog groups to mapmakers &#8212; to help the world understand and monitor the 2008 US elections.</p>
<p><img src="http://votereport.pbwiki.com/f/Screenshot%202008.10.27%2022.23.08.jpg" alt="" width="192" height="288" /><img src="http://votereport.pbwiki.com/f/Screenshot%202008.10.28%2002.03.11.jpg" alt="" width="192" height="288" /></p>
<p>Putting this project together, with all these diverse inputs, has been a monumental task and a real demonstration of what&#8217;s possible when people decide to work together.  We had over 600 phone channels donated.  We were able to think up, code, and submit an iPhone app in just 3 days.  We&#8217;ve received press coverage far and wide from sources as diverse as TechCrunch and Fox News.  Not bad for a few days&#8217; work.</p>
<p>There&#8217;s plenty more to do still (between now and Monday), and I&#8217;m busy all day tomorrow at SocialDevCamp.  We&#8217;ll do a session there on TwitterVoteReport and what we&#8217;re up to&#8230; we still need more help from people good with maps!</p>
<p>I&#8217;ll post more here as things evolve, and a recap next week, but remember, nothing&#8217;s impossible when caring people dedicate themselves to a common endeavor.</p>
<p>Meantime, check out:</p>
<ul>
<li><a href="http://twittervotereport.com">http://twittervotereport.com</a></li>
<li><a href="http://votereport.pbwiki.com">http://votereport.pbwiki.com</a></li>
<li><a href="http://socialdevcamp.net">http://socialdevcamp.net</a></li>
</ul>
<div>And watch for news about TwitterVoteReport.com on NPR and in the Baltimore Sun (in addition to myriad other outlets!)</div>
]]></content:encoded>
			<wfw:commentRss>http://davetroy.com/posts/socialdevcamp-east-twittervotereport-busy/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What&#8217;s Your iPhone App Idea?</title>
		<link>http://davetroy.com/posts/whats-your-iphone-app-idea</link>
		<comments>http://davetroy.com/posts/whats-your-iphone-app-idea#comments</comments>
		<pubDate>Thu, 26 Jun 2008 11:50:01 +0000</pubDate>
		<dc:creator>davetroy</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[july 11]]></category>

		<guid isPermaLink="false">http://davetroy.com/?p=35</guid>
		<description><![CDATA[Yesterday I met up with Jeff Pulver to discuss some business ideas, and one of the topics we touched on was, &#8220;If you could build any iPhone app, what would it be?&#8221; The new iPhone 3G and the imminent release of the App Store have created an amazing amount of buzz and speculation about what [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fwhats-your-iphone-app-idea"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fwhats-your-iphone-app-idea&amp;source=davetroy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="main" src="http://images.apple.com/iphone/features/images/main_safari20080609.jpg" alt="Safari on iPhone" width="310" height="395" / align="top"><br />
Yesterday I met up with <a href="http://pulverblog.pulver.com/">Jeff Pulver</a> to discuss some business ideas, and one of the topics we touched on was, &#8220;If you could build any iPhone app, what would it be?&#8221;</p>
<p>The new iPhone 3G and the imminent release of the App Store have created an amazing amount of buzz and speculation about what the next generation of mobile apps might be.</p>
<p>While I am unable to comment on any of my iPhone development efforts or the details of the iPhone SDK, I thought it might be interesting to ask here as well, &#8220;If you could build any iPhone app, what would it be?&#8221;</p>
<p>So, simple as that.  What is your ideal &#8220;killer app&#8221; for iPhone? Write your idea here, and maybe we&#8217;ll build it!</p>
]]></content:encoded>
			<wfw:commentRss>http://davetroy.com/posts/whats-your-iphone-app-idea/feed</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>HOWTO: Learn Stuff Efficiently</title>
		<link>http://davetroy.com/posts/howto-learn-stuff-efficiently</link>
		<comments>http://davetroy.com/posts/howto-learn-stuff-efficiently#comments</comments>
		<pubDate>Fri, 06 Jun 2008 20:34:47 +0000</pubDate>
		<dc:creator>davetroy</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[sleep]]></category>
		<category><![CDATA[technique]]></category>

		<guid isPermaLink="false">http://davetroy.com/?p=33</guid>
		<description><![CDATA[I enjoy learning new skills and technologies on my own, and it occurs to me that there isn&#8217;t a lot written on the subject. I&#8217;ve been developing this approach for about 20 years and here&#8217;s a brief summary of what I find works for me.  It may not work for you, and that&#8217;s OK.  But [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fhowto-learn-stuff-efficiently"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fhowto-learn-stuff-efficiently&amp;source=davetroy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I enjoy learning new skills and technologies on my own, and it occurs to me that there isn&#8217;t a lot written on the subject.</p>
<p>I&#8217;ve been developing this approach for about 20 years and here&#8217;s a brief summary of what I find works for me.  It may not work for you, and that&#8217;s OK.  But give this a try, refine your own technique, and share what works!</p>
<ol>
<li><strong>Choose a topic/technology outside your comfort zone.</strong>  This is self-evident; you can&#8217;t expect to learn anything new if you&#8217;re working in a sandbox you&#8217;ve already mastered.</li>
<li><strong>Make time for yourself.  </strong>Lots of it.  You can&#8217;t expect to dig into a topic deeply if you&#8217;re distracted by email, phones, tax deadlines, bills, dinner, family, friends, and bathing.  Seriously, these things have to take a backseat, you&#8217;ll come across as a recluse, and people will hate you.  Accept it.</li>
<li><strong>Set a goal.  </strong>It might be as simple as a &#8220;Hello World&#8221; or something more complex.  However, it should be something you think you can attain and which will make you happy to see completed.  So, choose something reasonable and within reach.</li>
<li><strong>Code until you get stuck.  </strong>Keep pushing small, obtainable goals until you get to a point where you are baffled or sleepy.  This is the time to take a nap.</li>
<li><strong>Before you take a nap, read something.  </strong>Your brain runs threads in the background while you&#8217;re sleeping.  Don&#8217;t waste that CPU power thinking about Angelina Jolie.  Instead, search for guidance on the thing that&#8217;s got you stuck (either with a colleague or online), or read (or re-read) a chapter in a coding book that&#8217;s relevant.</li>
<li><strong>Sleep until you wake up.  </strong>This might be 3 hours, 6 hours or 8 hours; your brain will sleep for as long as it needs to process the information you&#8217;re trying to absorb.  <strong>NOTE: </strong>At this point the thought of having a regular sleep schedule should make you giggle.  You should sleep and code when you feel like it, which likely will not be on any particular schedule.</li>
<li><strong>As you fall asleep, meditate on the questions you&#8217;re trying to answer.</strong>  The intense concentration available to you as you are nearing sleep will enable you to define and isolate the problems at hand, and this will provide a kind of &#8220;normalized grist&#8221; for your brain as it prepares to do your heavy lifting for you.</li>
<li><strong>When you wake up, you will have some answers.</strong>  You may not have all the answers yet, but you should have some fresh insights that will enable you to blast past your last impasse (wow).  This should give you some encouragement and allow you to repeat the cycle (3-8) again.</li>
</ol>
<p>I&#8217;m presently employing this technique to learn Objective C and Cocoa Touch for the iPhone, and it&#8217;s working great.  This is the sort of thing that society will not allow you to do continuously (unless you&#8217;ve evolved a significant number of support mechanisms) but you should be able to get away with it at least some of the time.  It delivers great results for me.</p>
<p>And for those of you to whom I owe emails, bear with me; I will get back to you shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://davetroy.com/posts/howto-learn-stuff-efficiently/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Update: iPhone Location Data EULA</title>
		<link>http://davetroy.com/posts/update-iphone-location-data-eula</link>
		<comments>http://davetroy.com/posts/update-iphone-location-data-eula#comments</comments>
		<pubDate>Wed, 16 Jan 2008 16:02:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[1.1.3]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[lbs]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[SLA]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://dave.popvox.com/?p=14</guid>
		<description><![CDATA[My previous post got me wondering what Apple&#8217;s EULA says about location data collected by and on the iPhone. Like most people I breezed past the 1.1.3 EULA agreement without studying it, and then found I had to dig around online to find the iPhone License Agreement, which I finally did on Apple&#8217;s site. Section [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fupdate-iphone-location-data-eula"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fupdate-iphone-location-data-eula&amp;source=davetroy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>My previous post got me wondering what Apple&#8217;s EULA says about location data collected by and on the iPhone.  Like most people I breezed past the 1.1.3 EULA agreement without studying it, and then found I had to dig around online to find the <a href="http://images.apple.com/legal/sla/docs/iphone.pdf">iPhone License Agreement</a>, which I finally did on Apple&#8217;s site.</p>
<p>Section 4(b) is the relevant piece:</p>
<div style="background: #eee; padding: 10px;">4. Consent to Use of Non-Personal Data.<br />
(a) You agree that Apple and its subsidiaries may collect and use technical and related information, including but not limited to technical information about your iPhone, computer, system and application software, and peripherals, that is gathered periodically to facilitate the provision of software updates, product support and other services to you (if any)<br />
related to the iPhone Software, and to verify compliance with the terms of this License. Apple may use this information, as long as it is in a form that does not personally identify you, to improve our products or to provide services or technologies to you. </p>
<div style="background: #ff0; padding: 8px;">(b) Apple may provide certain services through your iPhone that rely upon location information. To provide these services, Apple and its partners may collect, maintain, process and use your location data, including the real-time geographic location of your iPhone. By using or activating any location-based services on your iPhone, you agree and consent to Apple&#8217;s and its partners&#8217; collection, maintenance, processing and use of your location data to provide you with such services. The location data is collected in a form that does not personally identify you. You may withdraw this consent at any time by turning oﬀ the location-based feature on your iPhone or by not using the location-based features. Turning oﬀ or not using these features will not impact the functionality of your iPhone.</div>
<p> </p>
</div>
<p>A couple of basic points here.  First, Apple asserts that they may collect and share with its partners location data from the phone.  They secondly assert that the location data is collected in a way so as not to &#8220;personally identify you.&#8221;  I am not sure I agree with that statement based on my previous post, but let&#8217;s give them the benefit of the doubt for now.</p>
<p>Second, they go on to say that the user can &#8220;withdraw their consent at any time&#8221; by &#8220;turning off the location-based feature.&#8221;  How?  Where is that button in the preferences?</p>
<p>Third, they make the statement that &#8220;turning oﬀ or not using these features will not impact the functionality of your iPhone.&#8221;  Uh, yeah it will (assuming it were possible).  I won&#8217;t have location-based services or maps, which is a real reduction in the functionality of the phone.</p>
<p>Let&#8217;s take a look at the newly published <a href="http://images.apple.com/legal/sla/docs/ipodtouchjanuary08softwareupgrade.pdf">iPod Touch January &#8217;08 Software Upgrade License Agreement</a>, which we would expect should address the newly-added location features specifically.</p>
<p>Once again, the same section 4(b) contains the same text as the iPhone Software License Agreement.  So, they consider the location services in the iPhone and iPod Touch to be legally equivalent, which is interesting to note.</p>
<p>Seems to me Apple&#8217;s in an interesting place with this location data business.  The location data that is collected is packaged in HTTPS, so we can&#8217;t inspect it.  It is theoretically possible that it contains nothing that can identify a given user &#8220;personally,&#8221; but what does that mean?</p>
<p>Does it contain an iPhone serial number, or an IMEI number, or a phone number?  How is this data stored?  While that data, by itself, may not personally identify you, could it be correlated with data that does?  Is that possibility covered by the SLA as written?</p>
<p>I will assume that Apple and its lawyers have thought this through.  However, there are some interesting issues raised here.  Now that the iPhone/iPod Touch has location support, we should expect Apple, and possibly third party developers, to leverage that location data in interesting ways.</p>
<p>The most interesting ways involve tying identity to location, so if anything is going to happen down this path, then the SLA, as written, is not going to suffice.</p>
<p>In the meantime, you can bet that somebody is going to consider whipping up a class action suit because there is no clearly marked way to turn off the location-based services, and because &#8220;turning off LBS&#8221; <strong>does</strong> affect functionality &#8212; your phone doesn&#8217;t know where you&#8217;re at!</p>
<p>And keep an eye on that SLA for future versions &#8212; you can bet that the wording on the location data is going to evolve.</p>
]]></content:encoded>
			<wfw:commentRss>http://davetroy.com/posts/update-iphone-location-data-eula/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple Knows Where You Are: Sniffing the iPhone Location Service in 1.1.3</title>
		<link>http://davetroy.com/posts/apple-knows-where-you-are-sniffing-the-iphone-location-service-in-113</link>
		<comments>http://davetroy.com/posts/apple-knows-where-you-are-sniffing-the-iphone-location-service-in-113#comments</comments>
		<pubDate>Wed, 16 Jan 2008 12:11:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[1.1.3]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[navizon]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[skyhook]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[true]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://dave.popvox.com/?p=13</guid>
		<description><![CDATA[When Apple announced yesterday that the iPhone would now be &#8220;location-aware&#8221; with the release of their 1.1.3 software, I was curious how they had done it. I&#8217;ve been working with location information quite closely (see Twittervision, for example) for the last year or so and have had some conversations with different companies about how Apple [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fapple-knows-where-you-are-sniffing-the-iphone-location-service-in-113"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdavetroy.com%2Fposts%2Fapple-knows-where-you-are-sniffing-the-iphone-location-service-in-113&amp;source=davetroy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>When Apple announced yesterday that the iPhone would now be &#8220;location-aware&#8221; with the release of their 1.1.3 software, I was curious how they had done it.</p>
<p>I&#8217;ve been working with location information quite closely (see <a href="http://twittervision.com">Twittervision</a>, for example) for the last year or so and have had some conversations with different companies about how Apple might geo-enable the iPhone.</p>
<p>There are three options available:</p>
<ul>
<li>GPS</li>
<li>Cell Tower ID</li>
<li>Wifi Access Points</li>
</ul>
<p>GPS is not an option at present.  E911 laws in the US have required carriers to provide location information for some time, but that could be via GPS or from cell tower triangulation data.  <a href="http://www.trueposition.com/">TruePosition</a> makes this their entire business, and is the primary location information provider for AT&amp;T and T-Mobile in the US.  A pretty cozy gig, eh?  They do this by way of tracking cell tower information within the network, from what I understand.</p>
<p>GPS may be an option later if Apple adds an AGPS (assisted GPS) chipset to the iPhone or supports external Bluetooth GPS units, but external bluetooth will never be a true mass market phenomenon, and AGPS is at least going to have to wait for the next iPhone refresh, probably not til next year.</p>
<p>Cell Tower ID is another option.  Carriers know where their cell towers are (we hope), and by comparing the signal strength and the intersection of multiple cell tower antenna distribution patterns, you can make a pretty fair guess about where the user is.  It&#8217;s not always spot-on accurate, but it&#8217;s pretty close.</p>
<p>Wifi AP&#8217;s are the third option.  There are millions of Wifi AP radios running around the world at this point, and for the most part, they tend not to move around that much.  They do, however, come and go from time to time.  However, there are a lot of them, and with a modest investment in driving around populated areas, one could build up a pretty accurate database of what APs are where.  Then they could sell that database to people who want to know where their Wifi client radios are.</p>
<p>This is exactly what my friends up at <a href="http://www.skyhookwireless.com/">Skyhook Wireless</a> have done.  You can try out their <a href="http://loki.com">Loki</a> service for your laptop (Firefox/IE plugin).  Suddenly, if you have Wifi, you also have a pseudo-GPS capability.</p>
<p>Judging by the fact that Skyhook invited me to stop in and see them today at MacWorld (which I would have loved to do, but am sadly unable due to my being at home in Maryland this week), it seems Skyhook got the contract to provide some location data to Apple.  Apparently, the iPhone uses both Cell Tower ID and Wifi (Skyhook) data for location, while the iPod Touch uses Skyhook exclusively.  Good Job, guys!</p>
<p>This explains why when I went to see Skyhook in June and said that a company like Apple might be very interested in their technology, there was a definitive &#8220;no comment.&#8221;  This happens a lot; companies like to protect what might be a very early-stage negotiation, or even an intention, a lot of the time.  But in this case it looks like Skyhook bagged what might be their killer deal.</p>
<p>Yesterday, I succumbed to the hype and <a href="http://code.google.com/p/iphone-elite/wiki/RevirginizingTool">&#8220;Revirginized&#8221;</a> my iPhone (we had been engaged in some unsavory hacking) so I could safely install the new 1.1.3 software update that Steve said would be available.  The revirginizing and upgrade went as clean as could be, and now my phone is running 1.1.3.</p>
<p>I thought I might &#8220;inspect&#8221; what the phone is doing when you do a location lookup.  I have a bunch of resources on my home network, including a multipurpose Linux server, so I thought if I could pass the iPhone&#8217;s traffic through the Linux box, some tools like ngrep and tcpdump might reveal what exactly happens when the iPhone tries to position itself.</p>
<p>Well, turns out I was mostly right.  In typical Apple fashion, though, they&#8217;re keepin&#8217; it real with HTTPS, revealing nothing very interesting about how the location information works.</p>
<p>The iPhone is 192.168.1.199 and my proxy is 192.168.1.10.</p>
<p>Here&#8217;s what I saw:</p>
<pre>T 192.168.1.199:49311 -&gt; 192.168.1.10:2525 [AP]CONNECT iphone-maps.apple.com:443 HTTP/1.0.Host: iphone-maps.apple.com.User-Agent: Apple iPhone v1.1.3 Maps v1.0.0.4A93.

T 192.168.1.10:2525 -&gt; 192.168.1.199:49311 [AP][..HTTPS DATA...]

T 192.168.1.199:49311 -&gt; 192.168.1.10:2525 [AP][..HTTPS DATA...]</pre>
<p>So, alas, nothing to see here, really&#8230; move along.  However, we do now know that Apple is grabbing data from the phone via HTTPS, processing it network-side, and rendering a response to the phone about its position.  We do not, for example, see a variety of calls to Skyhook, Google, or elsewhere, which is not inconceivable without verifying it.</p>
<p>After the HTTPS call, we see this unencrypted call:</p>
<pre>T 192.168.1.199:49313 -&gt; 192.168.1.10:2525 [AP]POST http://iphone-wu.apple.com/glm/mmap HTTP/1.1.Accept: */*.Accept-Language: en.Accept-Encoding: gzip, deflate.Cookie: s_vi=[CS]v1|46B904DB00003607-A290B210000599B[CE]; s_nr=1199572400032.User-Agent: Apple iPhone v1.1.3 Maps v1.0.0.4A93.Content-Type: application/x-www-form-urlencoded.Content-Length: 145.Connection: keep-alive.Proxy-Connection: keep-alive.Host: iphone-wu.apple.com.

...

T 192.168.1.199:49313 -&gt; 192.168.1.10:2525 [AP]..*..m..DN..en_US..com.apple.iphone.1.0.0.4A93......@.......?...&amp;_...&gt;....&amp;`...&gt;.......&amp;]...&gt;....&amp;^...&gt;....&amp;\...&gt;....&amp;_...&gt;....&amp;[...&gt;....&amp;`...&gt;.

T 192.168.1.10:2525 -&gt; 192.168.1.199:49313 [AP]HTTP/1.1 200 OK.Date: Wed, 16 Jan 2008 12:38:31 GMT.Server: GFE/1.3.Content-Type: application/binary.Content-Length: 113.Cache-control: private.Connection: close.</pre>
<p>Not sure what this all is, but it looks like it has my iPhone serial number in there.  It&#8217;s so nice that Apple wants to know so much about my phone, its serial number, its position.  Why, if DHS ever has any doubts about me, perhaps they could simply just ask Apple?  Maybe they know where I am.</p>
<p>What is Apple&#8217;s position (pun intended) on customer privacy, now that they seem to be in the location data business?</p>
<p>Other firms like Boost Mobile&#8217;s Loopt service have gone to great (ridiculous) lengths to inform their customers about location data privacy and to protect collected data.  So as to avoid potential problems, Loopt does not even save a location track for its users, but instead stores only the <strong>current</strong> location of the user.  (This was the case when I spoke with them in May 2007.)  They figure this makes them less of a honeypot for DHS types, and keeps their customers happy.</p>
<p>I have never believed that consumers are as paranoid about location data as the press (and the most paranoid among us) would have us believe.  Most people are willing to generate, share, and publish some limited amount of location data if it provides some value to them in return and they can control the data sufficiently.</p>
<p>What seems like a simple software update for the iPhone is actually the consent of millions (4M+ according to Steve) of users to potentially publishing their location information. And not just for the iPhone, but for the iPod Touch as well.</p>
<p>Now the question is what a theoretical 1.2.0 software release might hold:  location of your iChat buddies?  Location-enabled Twitter clients (using the Twittervision API)?  Your friends conveniently plotted on the Google Maps client?  All of this is now theoretically possible with the iPhone and iPod Touch now, and Apple holds the keys.</p>
<p>It will be very interesting to see how the iPhone SDK (Software Development Kit) works next month.  If Apple opens up this location service to third party developers, we can expect to see some very interesting applications emerge this year.</p>
<p>The fact that the location service is not down to meter-accuracy is irrelevant (it put me, alternately, within a few feet of my house and across the river at the Annapolis Mall &#8212; I suspect because it was alternating between an accurate Wifi position and a more general cell tower position).  To make social location services work, all we really need to know is generally where someone is (nearby) and that they are really there (device has reported location).</p>
<p>There are plenty of apps where approximate location is sufficient (stores nearby, friends nearby, homes for sale nearby, etc).  Only for driving-direction or aviation applications do you need meter-accuracy.  A later update to the iPhone hardware with an AGPS chipset will solve that problem, but even without that, this opens up an amazing array of possibilities.</p>
<p>Mostly, great credit should go to Apple for pushing out a technology so seamlessly, so effortlessly, that so many others have found so problematic and full of legal and perceived landmines.  This is a big deal.  Skyhook, Loopt, uLocate, Nokia, Navizon, and dozens of others have been grasping for this holy grail for some time, and they&#8217;ve been told variously that it&#8217;s &#8220;impossible to get the data,&#8221; or that &#8220;consumers won&#8217;t go for it&#8221;,  or that &#8220;no one would fund it.&#8221;</p>
<p>Apple did it via iTunes with a software update.  Agree?  Kudos, Steve.</p>
]]></content:encoded>
			<wfw:commentRss>http://davetroy.com/posts/apple-knows-where-you-are-sniffing-the-iphone-location-service-in-113/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
