<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Coding Monkey</title>
	<atom:link href="http://sunhouzi.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sunhouzi.wordpress.com</link>
	<description>Random thoughts on technology and programming.</description>
	<lastBuildDate>Sun, 05 Apr 2009 04:15:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sunhouzi.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Coding Monkey</title>
		<link>http://sunhouzi.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sunhouzi.wordpress.com/osd.xml" title="The Coding Monkey" />
	<atom:link rel='hub' href='http://sunhouzi.wordpress.com/?pushpress=hub'/>
		<item>
		<title>GeoTagging Photos on iPhone via SDK</title>
		<link>http://sunhouzi.wordpress.com/2009/04/05/geotagging-photos-on-iphone-via-sdk/</link>
		<comments>http://sunhouzi.wordpress.com/2009/04/05/geotagging-photos-on-iphone-via-sdk/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 04:14:59 +0000</pubDate>
		<dc:creator>sunhouzi</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[geo tag]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://sunhouzi.wordpress.com/?p=51</guid>
		<description><![CDATA[I started looking into the possibility of adding geo tags to photos captured from within an iPhone application since Apple&#8217;s Camera.app and some third-party apps are doing it. There is, of course, no standard API to access the EXIF meta data in a JPEG image, so I was using the same iphone-exif library hosted on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sunhouzi.wordpress.com&amp;blog=4207405&amp;post=51&amp;subd=sunhouzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I started looking into the possibility of adding geo tags to photos captured from within an iPhone application since Apple&#8217;s Camera.app and some third-party apps are doing it.<br />
There is, of course, no standard API to access the EXIF meta data in a JPEG image, so I was using the same iphone-exif library hosted on googlecode as everybody else. Once being passed an UIImage by the iPhone camera through UIImagePickerController and obtaining the JPEG image representation, I was able to add the latitude and longitude values to its EXIF section. All&#8217;s well.<br />
The unpleasant surprise came after I saved the geo-tagged image to the iPhone photo album via UIImageWriteToSavedPhotosAlbum(), and pulled it out via iPhoto &#8211; the geo tag is gone!<br />
Since pictures taken by the native Camera.app contains proper geo tag info when pulled from iPhoto, I did a second test by getting a photo taken by the native Camera app into code to examine the EXIF data. Of course, I used a UIImagePickerController with source type set to PhotoLibrary and picked the natively captured photo. The JPEG representation of the UIImage passed by the picker controller to the code contains no geo tag either!<br />
So here&#8217;s what I think is happening -<br />
1) The UIImage object passed by the UIImagePickerController from either the camera or the photo library is format neutral and thus does not contain EXIF tags which are JPEG meta data, although it would be nice to have the meta data provided to code via some other means if the image source is JPEG.<br />
2) A UIImage object passed through the UIImageJPEGRepresentation() method is a JPEG representation containing only basic EXIF meta data including Orientation, EXIF {ColorSpace, XDimension, YDimension}.<br />
3) When writing out to photo album via UIImageWriteToSavedPhotosAlbum(), all EXIF data are stripped out and replaced with new EXIF data added by the SDK, although it would be nice to have a way to write the JPEG representation (instead of the abstract UIImage object) out to photo album and respect any existing EXIF tags.<br />
4) If an application wants to retain the geo tag information, it will have to maintain its own &#8220;album&#8221; inside the app &#8211; geo tag the JPEG representation of a UIImage passed from the camera UIImagePickerController, and write the data out to a JPEG file in the application&#8217;s directory; allow user to read images from local directory back into memory for manipulation/upload etc via<br />
<code>[UIImage imageWithData:[NSData dataWithContentsOfFile:]]</code><br />
Once you start integrating with photo album on the phone, you&#8217;ll lose EXIF tags going through the SDK&#8217;s photo album interface.<br />
All of this makes you wonder if the native Camera.app is using the same SDK photo album interface as is provided to third-party since it&#8217;s able to save photos to the photo album without losing the geo tag EXIF data. The answer is probably &#8220;NO&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sunhouzi.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sunhouzi.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sunhouzi.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sunhouzi.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sunhouzi.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sunhouzi.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sunhouzi.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sunhouzi.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sunhouzi.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sunhouzi.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sunhouzi.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sunhouzi.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sunhouzi.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sunhouzi.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sunhouzi.wordpress.com&amp;blog=4207405&amp;post=51&amp;subd=sunhouzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sunhouzi.wordpress.com/2009/04/05/geotagging-photos-on-iphone-via-sdk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a7040397ce67bb406adb3f8b9ee3f8ba?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sunhouzi</media:title>
		</media:content>
	</item>
		<item>
		<title>Pesky EXC_BAD_ACCESS error using NSXMLParser</title>
		<link>http://sunhouzi.wordpress.com/2008/11/01/pesky-exc_bad_access-error-using-nsxmlparser/</link>
		<comments>http://sunhouzi.wordpress.com/2008/11/01/pesky-exc_bad_access-error-using-nsxmlparser/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 21:35:24 +0000</pubDate>
		<dc:creator>sunhouzi</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://sunhouzi.wordpress.com/?p=16</guid>
		<description><![CDATA[I was working on a Cocoa Touch application that involves XML parsing using NSXMLParser. The source of the XML file is from a URL so a thread is used to do the background networking and parsing stuff, wrapped inside an autoreleasing pool. When running the application, I got an EXC_BAD_ACCESS error when the autorelease pool [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sunhouzi.wordpress.com&amp;blog=4207405&amp;post=16&amp;subd=sunhouzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was working on a Cocoa Touch application that involves XML parsing using NSXMLParser. The source of the XML file is from a URL so a thread is used to do the background networking and parsing stuff, wrapped inside an autoreleasing pool. When running the application, I got an EXC_BAD_ACCESS error when the autorelease pool was released. As Rusty&#8217;s wonderful little <a href="http://www.vitaminzproductions.com/technology-blog/index.php/2008/09/14/objective-c-memory-exception-exc_bad_access-likely-over-zealous-releasing/">blog</a> points out, such an error usually comes from releasing an object that you did not create (does not belong to you). I went back to checking every line of code making sure I wasn&#8217;t releasing anything of the case, and still came up empty. In the end, I went back to the sample code in SeismicXML and caught a tiny thing which turns out to be the culprit. See if you can spot the problem.<br />
Code calling to the XML parser:<br />
<code><br />
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];</code></p>
<p><code>[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;</code></p>
<p><code>XMLParser *sc = [[XMLParser alloc] init];<br />
NSError *error = [[NSError alloc] init];<br />
NSURL *url = ....;<br />
[sc parseXMLFileAtURL:url searchError:&amp;error];<br />
...<br />
[error release];<br />
[sc release];</p>
<p>[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;</p>
<p></code></p>
<p> </p>
<p><code> [pool release];//EXC_BAD_ACCESS<br />
</code><br />
Implementation of the XMLParser&#8217;s parse method:<br />
<code><br />
- (void)parseXMLFileAtURL:(NSURL *)URL parseError:(NSError **)error<br />
{<br />
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL];<br />
// Set self as the delegate of the parser so that it will receive the parser delegate methods callbacks.<br />
[parser setDelegate:self];<br />
// Depending on the XML document you're parsing, you may want to enable these features of NSXMLParser.<br />
[parser setShouldProcessNamespaces:NO];<br />
[parser setShouldReportNamespacePrefixes:NO];<br />
[parser setShouldResolveExternalEntities:NO];</code></p>
<p><code>[parser parse];</code></p>
<p><code>NSError *parseError = [parser parserError];<br />
if (parseError &amp;&amp; error) {<br />
*error = parseError;<br />
}</p>
<p></code></p>
<p> </p>
<p><code> [parser release];<br />
}</code></p>
<p>Found it??<br />
The problem is with NSError *error. Even though there&#8217;s an <code>[[NSError alloc] init]</code> paired with a <code>[error release]</code>, when the pointer to the pointer of this error object is passed to the <code>parseXMLFileAtURL:parseError:</code> method, the allocated error object is actually dropped from being referenced by the pointer and the pointer to the pointer is changed to pointing to <code>[parser parseError]</code>, which returns the error object created (and autoreleased) somewhere inside the parser and does not belong to the caller of the <code>parseXMLFileAtURL:parseError:</code> method. Once returned into the caller, this error object is released by mistake. When the autorelease pool is released, it sends a release to the already released error object, causing the bad access error. So by incorrectly allocating an NSError object to the caller before calling a method that uses pointer of pointer to pass back an object in addition to the returned object, and releasing it later inside the caller, a bad access problem as well as a memory leak are created at the same time. Brilliant!<br />
The Fix? Change these 2 lines in the caller code and you are good to go.<br />
<code><br />
NSError *error = <strong>nil</strong>;<br />
....<br />
<del datetime="00">[error release];</del><br />
</code><br />
This is the kind of memory problem that can be disguised despite matching alloc-releases.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sunhouzi.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sunhouzi.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sunhouzi.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sunhouzi.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sunhouzi.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sunhouzi.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sunhouzi.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sunhouzi.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sunhouzi.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sunhouzi.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sunhouzi.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sunhouzi.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sunhouzi.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sunhouzi.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sunhouzi.wordpress.com&amp;blog=4207405&amp;post=16&amp;subd=sunhouzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sunhouzi.wordpress.com/2008/11/01/pesky-exc_bad_access-error-using-nsxmlparser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a7040397ce67bb406adb3f8b9ee3f8ba?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sunhouzi</media:title>
		</media:content>
	</item>
		<item>
		<title>iPhone 3G &#8211; not an attractive upgrade &#8211; Here&#8217;s why</title>
		<link>http://sunhouzi.wordpress.com/2008/07/12/how-attractive-is-3g-iphone/</link>
		<comments>http://sunhouzi.wordpress.com/2008/07/12/how-attractive-is-3g-iphone/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 21:00:09 +0000</pubDate>
		<dc:creator>sunhouzi</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[HSDPA]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://sunhouzi.wordpress.com/?p=3</guid>
		<description><![CDATA[Unless you&#8217;ve been cooped up in a hole for the past 30+ days, it&#8217;s hard to miss the news about the release of the 3G iphone, announced on June 9th at the WWDC08, and debuted yesterday, July 11th, 2008. Having been following the 3G iPhone rumors since the beginning of 2008, I had high hopes tuning into [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sunhouzi.wordpress.com&amp;blog=4207405&amp;post=3&amp;subd=sunhouzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Unless you&#8217;ve been cooped up in a hole for the past 30+ days, it&#8217;s hard to miss the news about the release of the 3G iphone, announced on June 9th at the WWDC08, and debuted yesterday, July 11th, 2008.</p>
<p>Having been following the 3G iPhone rumors since the beginning of 2008, I had high hopes tuning into Steve Job&#8217;s WWDC08 keynote focusing mainly on the 3G iPhone, and ended up much disappointed. It seems that Apple spent most of its effort on the software side of changes (native SDK, App Store, Enterprise integration) and added just 2 main features hardware wise &#8211; UMTS, so that it can be called &#8220;3G&#8221;, and GPS &#8211; neither of which can be considered as &#8220;innovative&#8221; in today&#8217;s handset market.</p>
<p>A list of features still on the wish list:</p>
<p>Camera</p>
<ul>
<li>still 2.0MP with fixed focus, when many of today&#8217;s camera phones are easily doing at least 3.2MP with auto focus and digital zoom (check out Sony Ericsson&#8217;s <a href="http://www.sonyericsson.com/cws/products/mobilephones/overview/k800i">K800i</a>).</li>
<li>no front facing camera and no video telephony. Yes, I know VT&#8217;s image quality sucks because it uses 64kbps CSD bearer, but it&#8217;s a freebie that comes as part of the 3G technology. Because of Apple&#8217;s explicit ban on VOIP type of 3rd-party applications (to protect carriers&#8217; voice revenue), implementing a custom video telephony over IP solution is out of the question. Even if such an application exists, the lack of front-facing camera will make it a challenge to use (small mirror sales will go up maybe). Yet I can&#8217;t decide whether to blame the carriers or Apple for this. Unlike our lucky friends in Europe and Asia, the exclusive 3G iPhone carrier in U.S. &#8211; AT&amp;T &#8211; does not offer the VT feature (whether it&#8217;s a network infrastructure limitation or they just turned the feature off, I don&#8217;t know). Even if Apple could add this feature to the 3G iPhone, I&#8217;d imagine them being pressured by AT&amp;T to remove it so that it won&#8217;t &#8220;highlight&#8221; the limitation of the carrier. I wonder how the 3G iPhone will compete in Europe and Japan where pretty much all 3G handsets are capable of VT.</li>
</ul>
<p>Accelerometer &#8211; I wouldn&#8217;t complain about it had I not seen the Android prototype being demoed during Google IO 2008 keynote on the same Moscone West stage just 2 weeks prior to the WWDC08. In addition to an accelerometer, the Android prototype (which is an HTC I believe) added a digital compass that allows applications to do some really cool things.</p>
<p>Bluetooth &#8211; still just the handsfree profile (yeah, like I want to be caught dead with this blue-flashing thing plastered on my ear like a cyborg). What I really want is the serial port profile. I guess this is more of a software feature, one I don&#8217;t think Apple will ever add because of how people will use it. For me, I will connect the iPhone to a $50 bluetooth GPS receiver and voila I have an iPhone with GPS. Why do I want to do that when the 3G iPhone already includes GPS? Well, like I said, it&#8217;s a software feature, the new 2.0 firmware runs on both 2G and 3G iPhones, and the 2G iPhone does not have GPS. Even with a built-in GPS, the 3G iPhone can still benefit from an external GPS (I&#8217;ll explain why later). If I can surf over WiFi and get GPS over bluetooth, I will hang on to my 2G iPhone and never need to upgrade (at least to the current 3G iPhone) &#8211; something Apple does not want to happen.</p>
<p>Storage &#8211; a given. Who doesn&#8217;t want more?</p>
<p>No tethered mode &#8211; I want to be able to use my iPhone as a modem and enjoy the fast 3G network from my laptop on the go, Please!!!</p>
<p>Now let&#8217;s take a look at the 2 features that did get added &#8211; 3G and GPS, but not before I sidetrack a little bit.</p>
<p>I was not a Mac fan until I got involved in iPhone development (yes, I do like my Mac and OS X, even a little more than Linux &#8211; can&#8217;t believe I said that). So the WWDC08 keynote is the first full length presentation I watched given by Steve Jobs, a legendary presenter. Yet I was a bit put off by the misleading words and the lack of technical spec when he introduced the 3G iPhone. To this day I still hear people say that &#8220;the 3G iphone is thinner than the old iPhone&#8221;, and I can&#8217;t help but point out to them that the 3G iPhone is actually thicker, not thinner, by 0.02 inch, and that what Steve Jobs said, when he put up the picture of the new iPhone&#8217;s profile, was &#8220;it&#8217;s even thinner at the edges&#8221;. Is Steve misleading or just a &#8220;glass half full&#8221; type of guy?</p>
<p>Going back to the main topics.</p>
<p>Although not an Apple innovation, 3G speed is definitely an exciting feature. The second frequent thing I hear people talk about is that the &#8220;3G iPhone is at least twice as fast as 2G and approaching Wi-Fi&#8221;, because, well, that&#8217;s what Steve said at the keynote. Steve Jobs presented the results of the 3G iPhone downloading the same page over EDGE, 3G and Wi-Fi, taking 59 sec, 21 sec and 17 sec, respectively, and from there draw the conclusion that 3G speed is 2.8x faster than EDGE and is approaching Wi-Fi. Well, depending on the link quality of the EDGE and 3G connections, the speed improvement can range from 1.6x to 30x. Between 3G and Wi-Fi (802.11b), the difference can range from 28x slower to only 1.5x slower. This is because data speed over EDGE can range from ~40kbps to ~240kbps for a typical 4-timeslot downlink configuration depending on the MCS class which is determined by the radio quality (most people get ~100kbps). Speed over 3G range from max non-HSDPA speed of 384kbps to max HSDPA speeds of 1.4M or 3.6M or 7.2M or more bits per second depending on handset&#8217;s capability. So in addition to showing page download results, I wish Steve could have mentioned the technical spec and the capability of the 3G iPhone will be immediately apparent. It is rumored that iPhone 3G uses the Infineon PMB 8878 chipset capable of up to 7.2Mbps downlink. If that&#8217;s true, it blows competitors like Nokia N95 out of the water as the latter is only a Cat 6 (3.6Mbps). I wonder the reason for Apple&#8217;s overly modest statement on its website that the 3G iPhone is &#8220;Twice as fast, Half the price&#8221; and not blowing the trumpet on its 7.2Mbps CAPABILITY is, again, not to publicly humiliate AT&amp;T, because AT&amp;T&#8217;s 3G network &#8211; the only nation-wide 3G network in US &#8211; is only capable of doing up to 1.4Mbps HSDPA. Again, while our friends in Europe and Asia will be able to enjoy the 3G iPhone&#8217;s full HSDPA capability, people here in US are stuck with the pathetic AT&amp;T&#8217;s infrastructure. Apple and AT&amp;T&#8217;s strategy is &#8220;you won&#8217;t miss what you don&#8217;t know you&#8217;re missing.&#8221; Once upon a time US has the best of things in the world. Now in terms of telecom US is more like a third-world country.</p>
<p>So the 3G speed part kinda sucks here in US, leaving GPS as the only &#8220;shining point&#8221; of the new phone. After reading that the GPS feature on 3G iPhone is going to be A-GPS about a month ago (A for assisted), I was still hoping that it will really be a standalone GPS capable of using cellular network&#8217;s assistance to get a faster location fix, and in poor satellite visibility (e.g., indoors), like certain A-GPS mobiles do; and that when there&#8217;s no network assistance (e.g. when you are lost in the desert with no cell coverage), the GPS unit is still able to acquire its position, albeit taking longer. But judging from recent comments from Apple and reviews from early 3G iPhone adopters &#8211; that &#8220;the GPS chip is too weak to provide turn-by-turn navigation&#8221;, &#8220;can&#8217;t compete with standalone GPS&#8221; &#8211; I speculate that the type of A-GPS in the 3G iPhone is really mobile-assisted GPS, where the mobile only performs satellite measurements based on assistance data from the network, and let the network calculate where the mobile is. Compared to the other form of A-GPS, namely network-assisted GPS where mobile performs both satellite measurements and location calculation based on network assistance data, and the full standalone GPS, mobile-assisted GPS is the least taxing on mobile&#8217;s capability and resource, allowing lower-end mobiles with weaker GPS receiver and less CPU power to still be able to get its location. Of course, this comes at a cost of extra delay in getting the location result. If the mobile is traveling at a high speed, by the time mobile sends the satellite measurements to the network and the network finishes calculation of the location result and sends it back, the mobile would have moved away significantly, which will make turn-by-turn navigation very hard. If the bluetooth serial port profile is allowed, then the 3G iPhone can optionally pair with a standalone GPS, bypassing the weak built-in GPS receiver.</p>
<p>To summarize, 3G, not an innovation &#8211; comes with changing to 3G chipset; HSDPA 7.2Mbps (speculation), impressive and can be considered innovative, yet the speed is unachievable in US yet. A-GPS, weakest kind, won&#8217;t work without cellular network. Other hardware, no improvement.</p>
<p>How attractive is the 3G iPhone? You decide.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sunhouzi.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sunhouzi.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sunhouzi.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sunhouzi.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sunhouzi.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sunhouzi.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sunhouzi.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sunhouzi.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sunhouzi.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sunhouzi.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sunhouzi.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sunhouzi.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sunhouzi.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sunhouzi.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sunhouzi.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sunhouzi.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sunhouzi.wordpress.com&amp;blog=4207405&amp;post=3&amp;subd=sunhouzi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sunhouzi.wordpress.com/2008/07/12/how-attractive-is-3g-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a7040397ce67bb406adb3f8b9ee3f8ba?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sunhouzi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
