<?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>A Dash Of Web and Mobile Development</title>
	<atom:link href="http://blog.iangclifton.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.iangclifton.com</link>
	<description>Discussing trends and technologies in web and mobile development</description>
	<lastBuildDate>Thu, 10 Jun 2010 00:04:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Dreaded F-word</title>
		<link>http://blog.iangclifton.com/2010/06/09/the-dreaded-f-word/</link>
		<comments>http://blog.iangclifton.com/2010/06/09/the-dreaded-f-word/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 17:56:50 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[fragmentation]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=231</guid>
		<description><![CDATA[I have seen an increasing number of articles on the dreaded &#8220;F-word.&#8221;  No, not the word, the big one, the queen-mother of dirty words, the F-dash-dash-dash word.  I&#8217;m referring to &#8220;fragmentation.&#8221;  Site after site claims that fragmentation is killing the Android platform, but I guess by &#8220;killing&#8221; they mean the same kind [...]]]></description>
			<content:encoded><![CDATA[<p>I have seen an increasing number of articles on the dreaded &#8220;F-word.&#8221;  No, not <em>the</em> word, the big one, the queen-mother of dirty words, the F-dash-dash-dash word.  I&#8217;m referring to &#8220;fragmentation.&#8221;  Site after site claims that fragmentation is killing the Android platform, but I guess by &#8220;killing&#8221; they mean the same kind of killing that the Palm Pre did to the iPhone&#8230; i.e., none.    More Android devices are coming out every month, pushing past technology limits, and bringing the OS to more users than ever before.  But fragmentation is harming Android?<span id="more-231"></span></p>
<p><a href="http://android-developers.blogspot.com/2010/05/on-android-compatibility.html">Dan Morill of Google said this:</a></p>
<blockquote><p>Because it means everything, it actually means nothing, so the term is useless. Stories on “fragmentation” are dramatic and they drive traffic to pundits’ blogs, but they have little to do with reality. “Fragmentation” is a bogeyman, a red herring, a story you tell to frighten junior developers.</p></blockquote>
<p><a href="http://arstechnica.com/open-source/news/2010/06/ars-explains-android-fragmentation.ars">Ryan Paul of Ars Technica said this:</a></p>
<blockquote><p>[R]estrictions effectively ensure that all Android devices that are intended to run third-party applications are basically the same with respect to application compatibility. In addition to mandating some consistent hardware specifications, Google has also taken steps to make the Android software more resilient to fragmentation.</p></blockquote>
<p>And yet, we get people like <a href="http://www.zdnet.com/blog/hardware/android-fragmentation-is-real/8499">Adrian Kingsley-Hughes of ZDnet saying things like</a></p>
<blockquote><p>[T]here’s already fragmentation of the platform&#8230; For Joe Average, this created an ultra-confusing marketplace where operating system versions changed every few months. It also meant that compatibility issues were inevitable.</p></blockquote>
<p>Apparently &#8220;Joe Average&#8221; has a tough time tapping on the Android Market icon and then downloading <em>any visible app in the entire market</em>.  Google filters out apps that aren&#8217;t compatible with your device (due to both OS requirements and hardware requirements).  That doesn&#8217;t sound ultra-confusing to me.</p>
<p>The reality is that developers will choose the lowest level of the Android SDK that they can build their apps against to target the largest possible audience.  If a developer makes a live wallpaper, it will only show up in the market for people whose devices support live wallpapers.  So the only real issue is the question of whether manufacturers and carriers will push out the latest version of the OS for their phones.</p>
<p><strong>OS Updates</strong><br />
Undoubtedly, there will be older devices that aren&#8217;t able to handle the latest version, but those aren&#8217;t the high-end smartphones, and they will have prices which reflect that.  As far as the phones that are capable of running the latest version, if consumers see that X manufacturer&#8217;s phones always have the latest Android version within two months, those phones will be popular, especially through word of mouth.  If consumers see that Y manufacturer never upgrades its phones, those phones will be decidedly less popular.  The same is true of carriers.  And, fortunately for Android, the number of carriers and manufacturers behind these devices is not limited, so simple economics will put enough pressure on these companies that they&#8217;ll be eager to upgrade.  We&#8217;re already seeing all the latest Android-based phones coming out with Android 2.1 (even ones that were slated for 1.6), and they&#8217;re all capable of running 2.2.  With the huge performance improvement that Froyo brings, there is a large incentive for manufacturers and carriers to ensure they get Android 2.2 on their devices as soon as possible.</p>
<p><strong>iOS Fragmentation</strong><br />
Anyway, people&#8217;s minds are pretty set on whether fragmentation is an issue or a scare tactic.  I thought it would be useful to point out how this issue affects (or doesn&#8217;t affect) the popular iPhone because you really don&#8217;t hear much about it.</p>
<p>First, the iPhone has some advantages in avoiding fragmentation.  It is made by one company.  The OS is made by the same company.  The phone is limited to a single carrier (in the US).  The phone has very incremental improvements at one year intervals rather than spurtive, frequent improvements.</p>
<p>Despite these steady improvements, there are hardware differences that are further affected by the OS running on the iPad and iPod as well.  Some devices don&#8217;t have a camera, some have a 2mp camera, some have a 3mp camera, some have a 5mp camera, some have two cameras, some have autofocus, and some have flash.  Some support 3G and some only support WiFi.  Some have 412MHz processors, some have 532MHz processors, some have 600MHz processors, some have 1GHz processors, and some we don&#8217;t know.  Some have 128MB of RAM and some have twice that.  Some have a magnetic compass.  Some have a gyroscope.  Some can lock orientation.  Some are 480px wide, some are 960px wide, and some are 1024px wide.  So there is hardware variation because devices <em>must</em> improve, or they will be left behind.</p>
<p>There is software variation too.  Most devices are running a 3.x version, but that will change soon as some devices are able to upgrade to iOS 4 and some aren&#8217;t.  Of those that upgrade, the features supported will differ.  The iPhone 3G devices purchased for $100 a few weeks ago will never officially get multitasking.  Hopefully the poor souls who bought those are able to wait out a two-year contract before realizing how essential multitasking is.</p>
<p>With all these differences, would you call iOS fragmented?  I wouldn&#8217;t, and I wouldn&#8217;t call Android fragmented either.  They&#8217;re both evolving platforms.  Android had some catching up to do when the G1 came out, so it has evolved significantly faster than iOS, but evolution is not fragmentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/06/09/the-dreaded-f-word/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The New Apple iPhone 4</title>
		<link>http://blog.iangclifton.com/2010/06/07/the-new-apple-iphone-4/</link>
		<comments>http://blog.iangclifton.com/2010/06/07/the-new-apple-iphone-4/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 02:55:27 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[att]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=222</guid>
		<description><![CDATA[The iPhone 4 has been officially announced, and it is largely what most people expected after Gizmodo published info about a prototype they obtained.  The single biggest improvement is the screen.  It&#8217;s now 960&#215;640, which is exactly twice as many pixels along each axis as the previous iPhones.  This means that apps [...]]]></description>
			<content:encoded><![CDATA[<p>The iPhone 4 has been officially announced, and it is largely what most people expected after <a href="http://gizmodo.com/5520164/this-is-apples-next-iphone">Gizmodo published info about a prototype</a> they obtained.  The single biggest improvement is the screen.  It&#8217;s now 960&#215;640, which is exactly twice as many pixels along each axis as the previous iPhones.  This means that apps written for the previous resolution are easily scalable and won&#8217;t cause any significant load on the processor.  In addition to that, it means that the display is <em>very</em> sharp.<span id="more-222"></span></p>
<p>When you compare any of the newer competing smartphones to an iPhone 3GS, you see what a difference resolution makes.  For instance, the Motorolla Droid has a 854&#215;480 display that is 3.7&#8243; (diagonally).  That gives it a pixel density of 265ppi compared to the iPhone 3GS density of 163ppi.  The new iPhone 4 has a density of 326ppi, which is better than the Droid and significantly better than the previous iPhones.  If you were to shrink the Droid display to the same size as the iPhone 4 display, it would have a pixel density of 280ppi&mdash;just 20ppi below what Steve Jobs says is the limit of perception.  You can see what a huge difference pixel density makes in a <a href="/2010/02/08/nexus-one-and-iphone-screen-comparison/">previous post comparing the Nexus One display to the iPhone display</a>.</p>
<p>The new display is also an <acronym title="in-plane switching">IPS</acronym> LCD, which gives it much better viewing angles than a traditional LCD; however, the contrast ratio is not amazing at just 800:1.  That&#8217;s a huge step up from previous iPhones, but the Droid&#8217;s contrast ratio is 1400:1 and the Nexus One is 65,000:1 (<a href="http://www.displaymate.com/Nexus_Droid_ShootOut.htm">source</a>), meaning that the contrast ratio is likely to impress you if you&#8217;re using a current iPhone but not if you&#8217;re using one of many other leading smartphones.  The <a href="http://www.blogcdn.com/www.engadget.com/media/2010/06/apple-wwdc-2010-190-rm-eng.jpg">&#8220;retina display&#8221; appeared darker than the iPhone 3GS</a>, but we&#8217;ll have to wait to see if that&#8217;s really the case or just an issue with the demonstration setup.</p>
<p><strong>Video Calls</strong><br />
Another big feature that was shown off is the ability to make video calls.  For some people, this will be huge, but keep in mind that the iPhone 4 can currently only talk to other iPhone 4 devices and only if they are both on WiFi.  This is a very different approach than was taken by the Evo 4G (which uses Qik), but the WiFi limitation is probably for the better considering the problems users have reported with AT&#038;T&#8217;s network.</p>
<p><strong>AT&#038;T</strong><br />
Speaking of AT&#038;T, they have made some notable changes to billing recently.  The good news is that people who were eligible to upgrade an iPhone this year are immediately eligible to upgrade to the iPhone 4.  The mixed news is that the monthly data plans are now $15 for 200mb and $25 for 2gb.  There is no unlimited plan for iPhones, and tethering is going to be an additional $20 a month.  If you&#8217;re a light data user, this is great news because you can pay less and it <em>should</em> lower the stress on AT&#038;T&#8217;s network.  If you&#8217;re somehow actually using 2gb a month, the news is not so good.  Plus, the overage fees are distributed in &#8220;buckets&#8221; too.  If you go over your 200mb allotment one month by even a single byte, you&#8217;ll be paying double for your data fee ($30) and you&#8217;ll get another 200mb.  And, finally, the bad news:  A new smartphone contract comes with a $325 termination fee.  Meaning that even after the pro-rated change, you&#8217;ll still pay close to $100 to terminate your contract just one month early.  I expect to see the FCC look into this, but who knows if anything will actually come out of it.</p>
<p><strong>Design</strong><br />
The iPhone 4 is in the new case revealed by Gizmodo.  It&#8217;s 24% thinner than the iPhone 3GS and even a half millimeter thinner than the <a href="http://galaxys.samsungmobile.com/specification/spec.html?ver=high">Samsung Galaxy S</a>.  Some people love the design; some people hate the design; some people think <a href="http://i.imgur.com/DHP8p.jpg">it looks like a Vizio TV</a> (I tend to agree, but Apple products have commonly <a href="http://gizmodo.com/343641/1960s-braun-products-hold-the-secrets-to-apples-future">borrowed design</a> from <a href="http://gizmodo.com/gadgets/great-artists-steal/is-that-a-braun-et44-in-your-iphone-280925.php">other sources</a>).  The design is all about functionality and squeezing as much hardware in as little space as possible.  It&#8217;s been some time since the Gizmodo leak, and in that time it has grown on me as a very industrial, function-over-form design.  I definitely don&#8217;t consider it good-looking, but it&#8217;s not ugly either.</p>
<p><strong>Other Improvements</strong><br />
The new camera sensor is significantly improved and has an LED flash.  The pixel quantity (5mp) is nothing to get excited about, but the quality Apple is claiming is extremely impressive.  We&#8217;ll have to wait until this is in real-world conditions to see how it really performs though, particularly in low-light conditions.  It is also capable of 720p video at 30fps, which is very good for a cellphone (though, again, we&#8217;ll have to wait to see the quality).  The strange thing is that, according to <a href="http://www.apple.com/iphone/specs.html">Apple&#8217;s specs</a>, the iPhone is capable of outputting video at</p>
<blockquote><p>1024 by 768 pixels with Dock Connector to VGA Adapter; 576p and 480p with Apple Component AV Cable; 576i and 480i with Apple Composite AV Cable (cables sold separately)</p></blockquote>
<p>This suggests that there is currently no way to directly output the 720p video to a TV.  I&#8217;m wondering if this is an actual limitation of the phone, the connector, or simply a site typo.</p>
<p>The iPhone 4 has a noise-cancelation mic, which is strangely at the top of the device rather than the rear.  The phone now has an A4 processor similar to what is used in the iPad, which should give excellent performance for standard apps, but I&#8217;m curious to see OpenGL performance.  The battery is slightly larger and is claimed to have better life.  Unfortunately, battery life is another spec that requires some real-world testing.  The phone now has a gyro, which should give better motion sensing (presumably for games because the accelerometer already seemed good).</p>
<p><strong>Conclusion</strong><br />
Overall, the hardware is really solid, and I expect it to have a very good, quality feel.  This is a huge leap ahead of the previous iPhone, but this revamp puts the iPhone 4 very near to other leading smartphones.  The biggest problem is that this isn&#8217;t a major leap ahead of other smartphones, and now they have an entire year of improvements before the next iPhone comes out.  For current iPhone users whose devices do everything or nearly everything they want, this will be an excellent upgrade, but I don&#8217;t expect many Android-leaning people to be swayed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/06/07/the-new-apple-iphone-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sending HTML Email With Android Intent</title>
		<link>http://blog.iangclifton.com/2010/05/17/sending-html-email-with-android-intent/</link>
		<comments>http://blog.iangclifton.com/2010/05/17/sending-html-email-with-android-intent/#comments</comments>
		<pubDate>Tue, 18 May 2010 02:55:15 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=216</guid>
		<description><![CDATA[It&#8217;s very easy to send email via an Android intent.  Here&#8217;s an example where we already have the subject and body prepared but want to let the user decide on the recipient:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType(&#34;text/plain&#34;);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
Intent.createChooser(emailIntent, &#34;Email:&#34;);
startActivity(emailIntent);

(It&#8217;s important to note that this should be attempted on a real device.)
I ran into [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s very easy to send email via an Android intent.  Here&#8217;s an example where we already have the subject and body prepared but want to let the user decide on the recipient:</p>
<pre class="brush: java;">
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType(&quot;text/plain&quot;);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
Intent.createChooser(emailIntent, &quot;Email:&quot;);
startActivity(emailIntent);
</pre>
<p>(It&#8217;s important to note that this should be attempted on a real device.)<span id="more-216"></span></p>
<p>I ran into some trouble with sending HTML in an email because it was being interpreted as plain text both in the user&#8217;s email client and in the recipient&#8217;s.  Simply changing the MIME type didn&#8217;t help, but I eventually came across the solution:</p>
<pre class="brush: java;">
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType(&quot;text/html&quot;);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));
Intent.createChooser(emailIntent, &quot;Email:&quot;);
startActivity(emailIntent);
</pre>
<p>Note that both the MIME type is changed and the EXTRA_TEXT is now set as <code>Html.fromHtml(body)</code> instead of just being passed a string with HTML in it.  So far I&#8217;ve only tested this on a Nexus One running Android 2.1, but I&#8217;ll give it a try on some other platforms and see if it works.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/05/17/sending-html-email-with-android-intent/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Predator Clock Widget (Beta) Available For Android</title>
		<link>http://blog.iangclifton.com/2010/04/27/predator-clock-widget-beta-available-for-android/</link>
		<comments>http://blog.iangclifton.com/2010/04/27/predator-clock-widget-beta-available-for-android/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 05:02:06 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Applications]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[predator]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=201</guid>
		<description><![CDATA[I have published a beta version of the &#8220;Predator Clock Widget&#8221; to the Android Market.  The app started out as a simple app request on the Android Forums, but it quickly turned into something real.  Though it is just a beta version, I wanted to get something out there early on.  I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.iangclifton.com/wp-content/uploads/2010/04/predator-clock-widget-screenshot.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/04/predator-clock-widget-screenshot-200x300.png" alt="" title="Predator Clock Widget (Beta) Screenshot" width="200" height="300" class="alignleft size-medium wp-image-202" /></a>I have published a beta version of the &#8220;Predator Clock Widget&#8221; to the Android Market.  The app started out as a simple app request on the <a href="http://androidforums.com/application-requests/60219-app-request-predator-yautja-clock-countdown.html">Android Forums</a>, but it quickly turned into something real.  Though it is just a beta version, I wanted to get something out there early on.  I have plans to add color customization (the code is already there; I just need to create the UI) and support for a 24-hour clock.  The biggest thing after that is being able to switch between the Predator font and regular Arabic numerals.</p>
<p>I have to say that, as a whole, I am very happy with Android development.  Though I didn&#8217;t have any real experience in Java before I started playing with Android, I found it very easy to pick up the basics.  The syntax makes sense, even if it is a bit verbose at times.  The Android SDK is pretty straight forward.  Originally I was sticking to Vim, as it&#8217;s my editor of choice for pretty much everything, but I started to use Eclipse with the ADT plugin, which helped with all the necessary imports and catching some syntax typos.  I think with a Vim interface Eclipse could be pretty cool, haha.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/04/27/predator-clock-widget-beta-available-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android URL Sharing And Shortcuts</title>
		<link>http://blog.iangclifton.com/2010/04/13/android-url-sharing-and-shortcuts/</link>
		<comments>http://blog.iangclifton.com/2010/04/13/android-url-sharing-and-shortcuts/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 05:01:25 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Applications]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[nexus one]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=184</guid>
		<description><![CDATA[It seems like the longer I use my Nexus One, the more features I find.  One of the things that I really love about the Android operating system is the interconnectedness of the apps and their ability to access system-level features.  You can use AppAlarm to begin playing a Pandora radio station at [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like the longer I use my Nexus One, the more features I find.  One of the things that I really love about the Android operating system is the interconnectedness of the apps and their ability to access system-level features.  You can use AppAlarm to begin playing a Pandora radio station at a set time.  A news application can open your favorite Twitter app to share a breaking story.  You can adjust the brightness of your display while reading a book in Aldiko.  You can turn your phone upsidedown to have an app disable all audio.  The possibilities are amazing.<span id="more-184"></span></p>
<p><strong>Sharing URLs</strong><br />
A really handy feature that I didn&#8217;t know about until recently is the ability to share a URL you are viewing in the browser.  Long-pressing on a URL in the location bar brings up a menu with the option to &#8220;Share page&#8221; or &#8220;Copy page url&#8221; (it can also include &#8220;Save image&#8221; and &#8220;View image&#8221; depending on the context).  Choosing &#8220;Share page&#8221; reveals a menu with several options.  At the top are the built-in choices such as sharing &#8220;@Delicious,&#8221; but below those you can see options for specific apps.  Selecting &#8220;Twidroid&#8221; allows you to share the link via Twitter from right there.  You don&#8217;t have to open the full Twidroid application, and you don&#8217;t have to worry about the URL length (as it&#8217;s automatically shortened with your URL shortener of choice).  Just type a few words and send away.  You can even hit &#8220;Attach&#8221; to add or take a picture or video (both of which are automatically uploaded and linked for you).  I don&#8217;t care if you call this &#8220;multitasking&#8221; or &#8220;app interlinking.&#8221;  I call it <em>awesome</em>.</p>
<p><a href="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-url-menu.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-url-menu-180x300.png" alt="" title="Nexus One URL Menu" width="180" height="300" class="alignleft size-medium wp-image-186" /></a><a href="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-share-url.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-share-url-180x300.png" alt="" title="Nexus One Share URL" width="180" height="300" class="alignleft size-medium wp-image-187" /></a><a href="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-twidroid-in-browser.png"><img style="margin-bottom: 1em;" src="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-twidroid-in-browser-180x300.png" alt="" title="Nexus One Twidroid in Browser" width="180" height="300" class="alignleft size-medium wp-image-188" /></a></p>
<p><strong>Shortcuts</strong><br />
Most people already know that Android has folders, and it even has live folders (folders which have their contents populated by an app, such as a list of Pandora radio stations), but Android also has the ability to create shortcuts.  I don&#8217;t just mean shortcuts to open apps; I mean shortcuts to open very specific parts of apps.</p>
<p>One of the applications that I use fairly frequently is <a href="http://www.onebusaway.org/where/android.html">One Bus Away</a>, which allows me to see which buses are going where and when they should arrive.  The default view that opens is a map view, which I personally don&#8217;t use.  I know the stops I use and the routes I ride, so I nearly always want to go to a specific stop.  I&#8217;m frequently in a hurry, checking if I&#8217;ll be seconds away from catching the bus, and the slight delay going from loading the map view to loading the stop I want feels a lot longer than it really is.  Fortunately, Android has the answer:  I can create a shortcut directly to the exact stop that I want to view.  I simply long-press on the home screen, select &#8220;Shortcuts,&#8221; select the desired choice, (potentially further customize it, such as picking a specific bus stop in this case) and the icon is created.  Touching that icon will jump right to the correct spot in the app.</p>
<p><a href="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-long-press-menu.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-long-press-menu-180x300.png" alt="" title="Nexus One Long-Press Menu" width="180" height="300" class="alignleft size-medium wp-image-191" /></a><a href="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-shortcut-menu.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-shortcut-menu-180x300.png" alt="" title="Nexus One Shortcut Menu" width="180" height="300" class="alignleft size-medium wp-image-192" /></a><a href="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-shortcut-icon.png"><img style="margin-bottom: 1em;" src="http://blog.iangclifton.com/wp-content/uploads/2010/04/nexus-one-shortcut-icon-180x300.png" alt="" title="Nexus One Shortcut Icon" width="180" height="300" class="alignleft size-medium wp-image-193" /></a></p>
<p><strong>Conclusion</strong><br />
These are the types of features that are so simple but add so much to the experience of using an Android-based device.  Is Android perfect?  Of course not.  But can it do some amazing things?  <em>Absolutely!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/04/13/android-url-sharing-and-shortcuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus One Debugging In Ubuntu Linux</title>
		<link>http://blog.iangclifton.com/2010/04/08/nexus-one-debugging-in-ubuntu-linux/</link>
		<comments>http://blog.iangclifton.com/2010/04/08/nexus-one-debugging-in-ubuntu-linux/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 04:01:14 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[g1]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[n1]]></category>
		<category><![CDATA[nexus one]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=179</guid>
		<description><![CDATA[This is mostly just a note to myself, but I figured some other people might find it useful.  When I connected my Nexus One, it was showing up as &#8220;????????????	no permissions&#8221; when I ran adb devices.  I added the typical udev rule and had no luck.  Running lsusb revealed the the vendor [...]]]></description>
			<content:encoded><![CDATA[<p>This is mostly just a note to myself, but I figured some other people might find it useful.  When I connected my Nexus One, it was showing up as &#8220;????????????	no permissions&#8221; when I ran <code>adb devices</code>.  I added the typical udev rule and had no luck.  Running <code>lsusb</code> revealed the the vendor ID is different from the HTC G1.  So, to enable debugging this device and the G1 in Ubuntu (and other flavors of Linux), create/edit <code>/etc/udev/rules.d/51-android.rules</code> and put the following in it:</p>
<p><code>SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"<br />
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"</code></p>
<p>You may need to run <code>sudo reload udev</code> and/or disconnect and reconnect the N1.  Check <code>adb devices</code> again and hopefully you&#8217;ll see &#8220;HT9CSP123456	device&#8221; or similar.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/04/08/nexus-one-debugging-in-ubuntu-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apple iPhone OS 4</title>
		<link>http://blog.iangclifton.com/2010/04/08/apple-iphone-os-4/</link>
		<comments>http://blog.iangclifton.com/2010/04/08/apple-iphone-os-4/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 03:54:06 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=174</guid>
		<description><![CDATA[&#8220;We think competition is healthy, but competitors should create their own original technology, not steal ours.&#8221;  That&#8217;s a quote from Steve Jobs about their lawsuit against HTC (i.e., against Android, really), but I think it applies pretty well to iPhone OS4, as announced today.  Innovation definitely wasn&#8217;t the focus of the event.
The majority [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;We think competition is healthy, but competitors should create their own original technology, not steal ours.&#8221;  That&#8217;s a quote from Steve Jobs about their lawsuit against HTC (i.e., against Android, really), but I think it applies pretty well to iPhone OS4, as announced today.  Innovation definitely wasn&#8217;t the focus of the event.</p>
<p>The majority of the added features are already available in other mobile operating systems, but Steve does an excellent job of getting crowds excited about features they should have had long ago.  Let&#8217;s take a look at the announcements (credit to <a href="http://www.engadget.com/2010/04/08/live-from-apples-iphone-os-4-event/">Engadget&#8217;s coverage</a>).<span id="more-174"></span></p>
<p><strong>1 &#8211; Multitasking</strong><br />
Steve at least acknowledges that this has been available for other phones for years, but it looks like the multitasking will be pretty limited.  The majority of apps will just do state-saving, similar to the current experience.  Applications can be modified to have specific background services, such as Pandora playing in the background.  I love this quote: &#8220;It&#8217;s no exaggeration to say that the iPhone has changed the future of Pandora.&#8221;  I&#8217;d say iPhone has been holding back Pandora by not allowing it to run while you check email or whatever else.  Finally, this will change for iPhone 3GS and the newest iPod Touch devices this summer (and iPads in the fall).  iPhone 3G&#8230; sorry.</p>
<p>It doesn&#8217;t sound to me like there will be support for background tasks that aren&#8217;t initiated by the user (e.g., having a news app download the latest news in the background based on a time interval).  Widgets would have also been a nice announcement, but they&#8217;re absent as well.</p>
<p><strong>2 &#8211; Folders (and Wallpapers)</strong><br />
Now you can create folders and change your background image.</p>
<p><strong>3 &#8211; Enhanced Mail</strong><br />
Unified inboxes, multiple Exchange accounts, and thread-based organization&#8230; I didn&#8217;t realize they didn&#8217;t have thread-based organization, so that&#8217;s a nice change for Apple users.</p>
<p><strong>4 &#8211; iBooks</strong><br />
This app is now included in the OS.</p>
<p><strong>5 &#8211; Enterprise</strong><br />
This point included re-mentioning of multiple exchange accounts, so that&#8217;s clearly important to some people.  Better data protection, mobile device management, wireless app distribution &#8230; <a href="http://www.apple.com/iphone/business/preview-iphone-os/">minimal details</a> on this.  Hopefully the wireless app distribution means you don&#8217;t have to deal with any of the certificate hassle, but I doubt it.</p>
<p><strong>6 &#8211; Game Center</strong><br />
Basically this is Xbox Live/PSN, which isn&#8217;t innovative, but it definitely has a lot of potential.  It will be interesting to see how this unfolds.</p>
<p><strong>7 &#8211; iAd</strong><br />
Apparently Steve thinks that current advertising in applications sucks, so they&#8217;ve created iAd.  This adds potential for interaction (sweet, &#8220;punch the monkey&#8221; can finally come to iPhone!).  iAd actually has the potential to be really effective; unfortunately Apple is being extremely greedy and taking 40% of the revenue.  In theory, that leaves 60% to the developer, but there are many cases when ad revenue is shared.  Say a developer earns 50% of ad revenue and 50% goes to company XYZ.  That 50% is now really 30%, so the developer earns less than 1/3 of the profit of the app, pre-taxes.</p>
<p>Play with the numbers some more: a developer who would have earned 33% will drop to 20% (from 1/3 revenue to 1/5).  Apple is going to make more money for their shareholders and developers are going to have a bigger challenge (when they&#8217;re already facing an over-saturated market).</p>
<p><strong>Conclusion</strong><br />
Uh, that&#8217;s it.  For most people (well, people who have an Apple device that is less than a year old), this boils down to multitasking and some minor improvements (e.g., folders).  As far as innovation, that is pretty much just iAd.  Other devices have had multitasking, folders, custom wallpapers, thread-based mail organization, book readers, wireless distribution, etc.  If nothing else, this shows that competition is good.  Even if you&#8217;re an Apple fan who dislikes Android, WebOS, etc., you can still acknowledge that their presence is forcing Apple to finally make some improvements, and you don&#8217;t have to make as many excuses as to why your phone doesn&#8217;t have X feature.</p>
<p>Also, some additional (very limited) details are available on <a href="http://www.apple.com/iphone/preview-iphone-os/">Apple&#8217;s site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/04/08/apple-iphone-os-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Computer I Built</title>
		<link>http://blog.iangclifton.com/2010/03/27/the-computer-i-built/</link>
		<comments>http://blog.iangclifton.com/2010/03/27/the-computer-i-built/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 22:14:04 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[imac]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=162</guid>
		<description><![CDATA[
A few weeks ago, I build a new computer.  I hadn&#8217;t built a computer for myself since 2004 when I built the one I have replaced with this new one.  In that time, I have upgraded the RAM, added another hard drive, and changed from the original 17&#8243; LCD screen to two 19&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2010/03/new-computer.jpg"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/03/new-computer-400x266.jpg" alt="" title="New Computer... yeah I need a new desk" width="400" height="266" class="alignleft size-medium wp-image-167" /></a></p>
<p>A few weeks ago, I build a new computer.  I hadn&#8217;t built a computer for myself since 2004 when I built the one I have replaced with this new one.  In that time, I have upgraded the RAM, added another hard drive, and changed from the original 17&#8243; LCD screen to two 19&#8243; screens.  Other than that, it remained the same for all these years and served me well as an Ubuntu box.  Unfortunately, the need for increased processing power always develops.<span id="more-162"></span></p>
<p>When I purchased a <a href="http://blog.gordaen.com/2009/10/25/canon-eos-7d-review/">Canon 7D</a> in fall of last year, I quickly realized how limited my desktop was in terms of processing power (and the 2.5GB of RAM was a bit underwhelming).  My laptop was better in many respects (Core 2 Duo, 4GB of RAM, 1GB video card, etc.), but it didn&#8217;t have the screen real estate.  Of course I could hook up an external monitor, but that just wasn&#8217;t cutting it for me and I started to heavily consider a new computer.</p>
<p>Despite its allure, I eventually <a href="/2009/11/19/why-i-am-not-getting-a-27-imac-yet/">decided not to buy a 27&#8243; iMac</a>, largely due to glare issues.  That machine had seemed pretty impressive, especially to someone who hadn&#8217;t paid a great deal of attention to hardware in recent years.  Apple offered no matte option, so I looked at various matte films and other solutions only to decide I wasn&#8217;t willing to give them a try.  Eventually, I opted to build my own computer.</p>
<p><img src="http://blog.iangclifton.com/wp-content/uploads/2010/03/new-computer-parts-400x266.jpg" alt="" title="New Computer Parts" width="400" height="266" class="alignright size-medium wp-image-168" />I couldn&#8217;t help but be continually surprised at what I could build for far less than an <a href="http://www.apple.com/imac/">iMac</a>.  I eventually went with a system that is designed for good performance now and expandability in the future.  Though it&#8217;s not possible to fairly compare a built (all-in-one) computer with an Apple product, I couldn&#8217;t help but find myself noting the differences.</p>
<table style="width: 100%" border="1" cellspacing="0">
<tr>
<th></th>
<th>Built</th>
<th>Decent iMac</th>
<th>Better iMac</th>
</tr>
<tr>
<th>Processor</th>
<td>Intel i7-920 ($288.99)</td>
<td>Intel i5-750</td>
<td>Intel i7-860 (+$200)</td>
</tr>
<tr>
<th>RAM</th>
<td>12GB 1600 Corsair ($339.99)</td>
<td>8GB 1066 (+$200)</td>
<td>16GB 1066 (+$1400)</td>
</tr>
<tr>
<th>Hard Drive</th>
<td>1.5TB ($109.99)</td>
<td>1TB</td>
<td>2TB (+$250)</td>
</tr>
<tr>
<th>Video Card</th>
<td>GeForce GT 240 1GB 128-bit DDR3 ($89.99)</td>
<td colspan="2">Radeon HD 4850 512MB 256-bit DDR3</td>
</tr>
<tr>
<th>Monitor(s)</th>
<td>LG W2343T-PF 23&#8243; HD x2 ($359)</td>
<td colspan="2">27&#8243; 2560&#215;1440</td>
</tr>
</table>
<p>The lower-end comparable iMac is $2199 before Washington State sales tax (Apple estimates $2,407.91 after); the higher end is $3849 before taxes.  The total cost for my system, including tax and shipping and the Windows 7 disc (though I use Linux 99% of the time, there are those occasional times when I have to deal with Windows for something like Cisco TFTP), was $1750.74.</p>
<p>Some benefits to the iMac: bigger screen; OS X Snow Leopard; video card (I believe this is better than the 240 but with a higher power consumption; politely show me otherwise if that&#8217;s not the case); built-in SD card slot, webcam, Bluetooth, and WiFi; all-in-one enclosure.</p>
<p>Some benefits to the built system: more screen real estate; matte screens; more/faster RAM; LGA 1366 chipset; two USB 3.0 ports; two 6GB/s SATA ports; two eSATA ports; BluRay drive; significant expandability.</p>
<p>The biggest and most prominent difference is the two 23&#8243; monitors vs. one 27&#8243; monitor.  Personally, I like the two 23&#8243; monitors, but I could have gone with a <a href="http://accessories.us.dell.com/sna/products/Displays/productdetail.aspx?c=us&#038;l=en&#038;s=dhs&#038;cs=19&#038;sku=224-8284">Dell U2711 27&#8243; monitor</a> instead.  It would have increased the cost to $2490.74.  Dell also has an excellent replacement policy (a single dead pixel and you get a new one!), so that would have been a good option if the larger screen were important.  (BTW, anyone know what Apple&#8217;s dead pixel policy is on the 27&#8243; iMac?)</p>
<p>The other big difference is the all-in-one approach.  Honestly I think Apple does this for three reasons: it&#8217;s aesthetically pleasing, it&#8217;s extremely easy for even a computer-illiterate person to set up, and it&#8217;s not expandable.  That means Apple&#8217;s only line of products that is really expandable is the Mac Pro series which is basically 2-3x the cost.  If needed, I can throw 24GB of RAM in my computer, swap out the processor with better LGA 1366-based chips, add multiple hard drives or optical drives, add video cards.  I even put a Corsair 650W power supply into my system just in case.  Sure, you can buy 16GB of RAM for the iMac for ~$750 (or pay twice as much to have Apple do it for you), but you can&#8217;t do much about the other issues like single hard drive, single video card, etc.  Further, if your screen goes out, your computer is useless.  A non-all-in-one (is there a word for that?) can just have the bad monitor swapped out.</p>
<p>Here are the parts I bought:</p>
<ul>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813128423">GIGABYTE GA-X58A-UD3R LGA 1366 Intel X58 SATA 6Gb/s USB 3.0 ATX Intel Motherboard</a> $209.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819115202">Intel Core i7-920 Bloomfield 2.66GHz LGA 1366 130W Quad-Core Processor</a> $288.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820145235">CORSAIR XMS3 12GB (6 x 2GB) 240-Pin DDR3 SDRAM DDR3 1600 (PC3 12800)</a> $339.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814121353">ASUS ENGT240/DI/1GD3/A GeForce GT 240 1GB 128-bit DDR3</a> $89.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822136513">Western Digital Caviar Green WD15EARS 1.5TB SATA 3.0Gb/s 3.5&#8243; Internal Hard Drive</a> $109.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16827106300">LITE-ON Black BD-COMBO SATA Model ihes108-29 &#8211; OEM</a> $99.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16832116754">Microsoft Windows 7 Home Premium 64-bit 1-Pack for System Builders &#8211; OEM</a> $104.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817139005">CORSAIR CMPSU-650TX 650W Power Supply</a> $99.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811119161">COOLER MASTER ELITE 335 RC-335-KKN1-GP Black SECC Steel ATX Mid Tower Computer Case</a> $49.99</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16824005129">LG W2343T-PF Black 23&#8243; 5ms Widescreen Full HD 1080p LCD Monitor</a> x2 $359.90</li>
</ul>
<p>It even came with a voucher that I used to get Resident Evil 5 for free.  For some people, the iMac might be the right decision, but I&#8217;m absolutely pleased with my decision to build my own computer.  I hope it continues to be useful for 5.5 years like my last one.</p>
<p>(Note: If you added up the prices listed for my system, you probably see that the numbers are slightly off.  The motherboard and processor combo gave a $20 discount.  Shipping was $3.45 for 3-day delivery.  I also bought a DVI adapter that I included in the price, but I didn&#8217;t end up using it and some fresh Arctic Silver 5).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/03/27/the-computer-i-built/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Reality Of Mobile Multitasking</title>
		<link>http://blog.iangclifton.com/2010/03/10/the-reality-of-mobile-multitasking/</link>
		<comments>http://blog.iangclifton.com/2010/03/10/the-reality-of-mobile-multitasking/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 05:54:12 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[nexus one]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=157</guid>
		<description><![CDATA[One of the big features of Android commonly touted as being a key difference between it and the iPhone is &#8220;multitasking.&#8221;  Android users commonly say how obviously necessary this is in any modern computing device, while iPhone users don&#8217;t see the need or claim they don&#8217;t want it either because of a perceived performance [...]]]></description>
			<content:encoded><![CDATA[<p>One of the big features of Android commonly touted as being a key difference between it and the iPhone is &#8220;multitasking.&#8221;  Android users commonly say how obviously necessary this is in any modern computing device, while iPhone users don&#8217;t see the need or claim they don&#8217;t want it either because of a perceived performance hit or potential battery drain.</p>
<p>First off, we have to clarify the concept of multitasking.  On a desktop, notebook, netbook, etc., you will frequently have multiple programs open at a time and often more than one is visible on the screen.  In most cases, these programs are actively running (usually with priority given to the application in focus) and using some processing cycles.  Sometimes the background applications do need to use resources, such as an instant messaging client or music player.  Sometimes they don&#8217;t, such as when you are actively playing a game but left a browser window open in the background.<span id="more-157"></span></p>
<p>The misconception is that Android handles all these processes the same way, forcing them to fight it out in a cage match with the winner getting processor cycles.  Fortunately, that is not the case.</p>
<p><strong>Unnecessary Processing</strong><br />
Most of the time the limited screen real estate means you don&#8217;t need background processes running for applications that don&#8217;t currently show any <acronym title="User Interface">UI</acronym>.  Essentially, the processing associated with an activity ends, but the activity remains in memory until that memory is either needed or the activity is back in focus (obviously this is a bit of a simplification).  When an activity goes into the background like this, it typically does any saving necessary.  That allows the memory to be recovered aggressively, if needed, without creating delay at the time of recovery.</p>
<p>Some iPhone apps actually have similar behavior, but they store their state to the phone&#8217;s storage rather than the memory.  This allows you to reopen an app, starting from the same point you ended it.  Clearly, both Apple and iPhone developers see this ability to quickly switch tasks as valuable, despite that it isn&#8217;t &#8220;built in&#8221; to iPhone OS.</p>
<p><strong>Necessary Processing</strong><br />
The other key situation is something called a service, and this is where the differences between Android and iPhone OS are most noticeable.  A service is a process that does not directly have UI or an activity associated with it.  A process for handling the reception of instant messages is a good example.  You don&#8217;t want to sit on a screen all day to wait for new messages.  You want to be able to check your email, browse the web, or play a game.  The service can run in the background and unobtrusively notify you of new messages.</p>
<p><strong>Apple&#8217;s Situation</strong><br />
Apple sees the need for some apps to have background processes; the music player is a good example.  Apple just hasn&#8217;t fully opened the door to letting the third-party developers run background processes.  Instead, they allow for push notifications.</p>
<p>But push notifications are not the complete answer.  They have an extremely limited 256-byte maximum payload.  They are not secure.  They require extra infrastructure.  They overwrite each other.  They are designed for text only.  The application cannot manipulate the push notification data if it is not running.  And, worst of all, push notifications are extremely intrusive!  Implemented properly, push notifications could be the correct solution for some situations, but they currently present a bad user experience and have limited value to developers.</p>
<p><strong>Additional Uses</strong><br />
Besides music players, instant messengers, and SSH connections, location-based services like Google Latitude are virtually useless without background processes.  Another example of a background service is common in feed readers such as NewsRob.  While you don&#8217;t have the app open in the foreground, it is still able to periodically fetch new feed items.  That means you can later open that app without an internet connection and still read your favorite feeds.  With iPhone, you have to actively open each app and tell it to cache the data for offline reading, wait, and then repeat for each app you might want to use (such as during a plane ride).</p>
<p><strong>Even if you disagree</strong><br />
Finally, even if you believe nothing of what I have written and still believe that background processes waste a huge amount of processor cycles and drain your battery, then you should ask yourself how the Nexus One has a battery life comparable to the iPhone&#8217;s when it has a faster processor that is pushing more than twice as many pixels, it has more RAM, it runs third-party background applications&#8230; not to mention the battery is user-replaceable ($25 for an Android battery; roughly four times that for Apple to replace an iPhone battery).  It must be from HTC stealing Apple&#8217;s innovation again <em>*sigh*</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/03/10/the-reality-of-mobile-multitasking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QR Codes, Microsoft Tags, And 2D Data Representation</title>
		<link>http://blog.iangclifton.com/2010/03/09/qr-codes-microsoft-tags-and-2d-data-representation/</link>
		<comments>http://blog.iangclifton.com/2010/03/09/qr-codes-microsoft-tags-and-2d-data-representation/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 04:28:28 +0000</pubDate>
		<dc:creator>Ian G. Clifton</dc:creator>
				<category><![CDATA[Data Representation]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[microsoft tags]]></category>
		<category><![CDATA[qr codes]]></category>

		<guid isPermaLink="false">http://blog.iangclifton.com/?p=143</guid>
		<description><![CDATA[ Most people are familiar with barcodes.  They&#8217;re simple sets of lines that represent numbers.  Since they are one-dimensional (i.e., they represent data along one axis only), they&#8217;re extremely inefficient.  However, that also means they are very reliable.  Think of it like the chart at an eye doctor&#8217;s office.  That [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_144" class="wp-caption alignleft" style="width: 160px"><a href="http://blog.iangclifton.com/wp-content/uploads/2010/03/qr-code.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/03/qr-code-150x150.png" alt="QR Code" title="QR Code" width="150" height="150" class="size-thumbnail wp-image-144" /></a><p class="wp-caption-text">QR Code</p></div> Most people are familiar with barcodes.  They&#8217;re simple sets of lines that represent numbers.  Since they are one-dimensional (i.e., they represent data along one axis only), they&#8217;re extremely inefficient.  However, that also means they are very reliable.  Think of it like the chart at an eye doctor&#8217;s office.  That top letter might only be one byte in a large space, but it is very easily read by most people.</p>
<p>Now, imaging technology has improved and we can represent data across two axes.  This gives us for more data in the same amount of space.  Instead of just a few numbers, we can represent hundreds of characters.  The two formats I most commonly see are as technically different as they are philosophically different.<span id="more-143"></span></p>
<p><strong>QR Codes</strong> are the type I see the most.  They represent data directly without color.  They can be read with extremely cheap equipment and are common in Japan.  There are no licensing fees associated with QR codes.</p>
<p><div id="attachment_147" class="wp-caption alignright" style="width: 160px"><a href="http://blog.iangclifton.com/wp-content/uploads/2010/03/microsoft-tag.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/03/microsoft-tag-150x150.png" alt="Microsoft Tag" title="Microsoft Tag" width="150" height="150" class="size-thumbnail wp-image-147" /></a><p class="wp-caption-text">Microsoft Tag</p></div> The <strong>Microsoft Tag</strong> is an <acronym title="High Capacity Color Barcode">HCCB</acronym> which uses colored triangles to represent data.  The tags do not contain the data directly but instead contain a reference to it which must be accessed via a connection to Microsoft&#8217;s servers.  Think of the tags as <a href="http://tinyurl.com">tinyurl</a> links.  The actual data might look something like &#8220;yabn3c7,&#8221; but it can be passed to a server which then replies with the real data or URL.</p>
<p><em>The differences are numerous</em>.  Though the QR Code format is patented, you do not have to pay for a license.  Anyone is able to generate one and code for interpreting the data is freely available.  Microsoft Tags do not current cost money, but they could (and most likely will) cost money in the future.  Since Microsoft Tags have to hit a server that you do not control, there are three big things to consider: 1) Microsoft has access to your analytics data, 2) they can charge you a recurring fee to ensure they don&#8217;t reroute your tag to another site, 3) the tags are useless without an internet connection.  Basically, QR Codes are open whereas Microsoft Tags are closed.</p>
<p>That being said, there is one major plus to Microsoft Tags and that is their ability to be read.  Though they require a bit better of an imaging device, most mobile phone cameras are very capable and can read a smaller Microsoft Tag than a QR Code.  The following is a smaller version of each of the above tags.  I shrank each tag as small as I could while still being readable with my Nexus One.</p>
<p><a href="http://blog.iangclifton.com/wp-content/uploads/2010/03/tiny-microsoft-tag-qr-code.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/03/tiny-microsoft-tag-qr-code.png" alt="Tiny Microsoft Tag and QR Code" title="Tiny Microsoft Tag and QR Code" width="82" height="41" class="aligncenter size-full wp-image-148" /></a></p>
<p>Related to that is the inherent error correction in each image.  I had assumed they would be pretty similar, so I am glad I tested this.  I found that the Microsoft Tag was also much more capable of recovering the data when the image was imperfect.  I&#8217;m not sure if this is simply because of the design (the lines I drew generally didn&#8217;t blank out complete triangles) or because the Microsoft Tag doesn&#8217;t have to represent all the data, meaning that it is representing less data in the same amount of space.</p>
<p><a href="http://blog.iangclifton.com/wp-content/uploads/2010/03/microsoft-tag-qr-code-error-correction.png"><img src="http://blog.iangclifton.com/wp-content/uploads/2010/03/microsoft-tag-qr-code-error-correction.png" alt="Microsoft Tag and QR Code Error Correction" title="Microsoft Tag and QR Code Error Correction" width="410" height="200" class="aligncenter size-full wp-image-150" /></a></p>
<p>Because it&#8217;s my nature to prefer open solutions to closed ones, I definitely prefer QR Codes, but I did find it interesting to see how capable the Microsoft Tags were.  One key difference, however, is that QR Codes can represent data other than just URLs.  Regardless, I think Microsoft will make a big push with their format, and it may even become fairly common.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iangclifton.com/2010/03/09/qr-codes-microsoft-tags-and-2d-data-representation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.876 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-06-19 13:01:36 -->
