<?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>Wayne Pan</title>
	<atom:link href="http://waynepan.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://waynepan.com</link>
	<description>tech &#124; js &#124; ui &#124; ajax &#124; life &#124; mobile</description>
	<lastBuildDate>Thu, 28 Jan 2010 08:58:46 +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>iPad, Multi-Tasking, Flash</title>
		<link>http://waynepan.com/2010/01/28/ipad-multi-tasking-flash/</link>
		<comments>http://waynepan.com/2010/01/28/ipad-multi-tasking-flash/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 08:58:46 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=491</guid>
		<description><![CDATA[
The anticipation built, the hype was beyond anything we had seen, the announcement was made, and now we&#8217;re left to ponder what it all means. 
Yes, the iPad can be distilled down to 2 words: giant iPhone, but today&#8217;s announcement was never about the hardware (aside from the custom A4 cpu) but about the software. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://waynepan.com/wp-content/uploads/2010/01/hardware-05-20100127.jpg" alt="" title="hardware-05-20100127" width="400" height="233" class="size-full wp-image-494" /><br />
The anticipation built, the hype was beyond anything we had seen, the announcement was made, and now we&#8217;re left to ponder what it all means. </p>
<p>Yes, the iPad can be distilled down to 2 words: <i>giant iPhone</i>, but today&#8217;s announcement was never about the hardware (aside from the custom A4 cpu) but about the software. iPhone 3.2 OS, essentially the same OS that will be running in the iPhone sitting my desk. </p>
<p>iPad, in that respect, is underwhelming.</p>
<p>The <a href="http://pleasefixtheiphone.com/">two most requested features of the iPhone OS</a> are Flash and multitasking. Neither of these features are in the iPhone 3.2 and ostensibly will not be available when the iPad launches in late March. </p>
<p>I can see how Apple justifies not having either of these features; none of which are technical. Let&#8217;s start with Flash. It is a resource drain, source of <a href="http://daringfireball.net/2010/01/apple_adobe_flash">countless crashes</a>, and the source code is ultimately not owned by Apple. </p>
<p>However, the main reason why Apple doesn&#8217;t want Flash on the device is that it can&#8217;t be optimized. Flash sits on top of Safari which sits on top of the OS; essentially a VM. With the iPad, Apple has designed custom silicon optimized for their OS and applications built off of their SDK. Flash applications are not built off their SDK, unoptimizable. </p>
<p>Multitasking is another matter. It&#8217;s obviously technically possible (read: <a href="http://www.theiphoneblog.com/2009/12/27/proswitcher-iphone-jailbreak-multitasking-ui-10/">jailbreak</a>) but Apple is holding back on it because it impacts the user experience. Normal users do not want to deal with resource management nor do they understand it. How many Windows users have you seen with 50 icons in their task tray and complain their computer is &#8220;slow&#8221;. That&#8217;s not the perception that Apple wants users to have of the iPhone, and now the iPad.</p>
<p>Background Mobile Safari playing a flash video and it&#8217;s welcome to SlowVille &#8211; population: lag.</p>
<p>Apple will eventually offer multitasking once the silicon becomes fast enough that it doesn&#8217;t impact the user experience. They could potentially approve certain apps to be backgrounded, putting a resource cap for backgrounded apps, or limiting the number of background apps.</p>
<p>Apple&#8217;s answer for Flash? HTML5 and native apps of course.</p>
<p>I will be pre-ordering an iPad sight unseen. I know I&#8217;m in the minority and all the uses I imagine are very niche. But, what I wouldn&#8217;t give to own a first gen iPod. I believe the iPad is a product of that magnitude.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2010/01/28/ipad-multi-tasking-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5, Video, and Performance</title>
		<link>http://waynepan.com/2010/01/21/html5-video-and-performance/</link>
		<comments>http://waynepan.com/2010/01/21/html5-video-and-performance/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 02:56:13 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[predictions]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=480</guid>
		<description><![CDATA[YouTube announced an HTML5 version of the YouTube service a couple days ago. Now Vimeo is joining in and announced their new HTML5 player. This is great news for anybody that has an older computer, a slower netbook, or (like me) an older Mac Mini under your TV. 
Watching an older flash video on the [...]]]></description>
			<content:encoded><![CDATA[<p>YouTube announced an <a href="http://www.youtube.com/html5">HTML5 version of the YouTube service</a> a couple days ago. Now Vimeo is joining in and <a href="http://www.Vimeo.com/blog:268">announced their new HTML5 player</a>. This is great news for anybody that has an older computer, a slower netbook, or (like me) an older Mac Mini under your TV. </p>
<p>Watching an older flash video on the older YouTube, my CPU utilization from Safari and Flash is between <b>100 &#8211; 150%</b> usage:<br />
<a href="http://waynepan.com/wp-content/uploads/2010/01/youtube-flash.png"><img src="http://waynepan.com/wp-content/uploads/2010/01/youtube-flash.png" alt="" title="youtube-flash" width="374" height="291" class="aligncenter size-full wp-image-481" /></a><br />
Watching the <b>same video</b> on YouTube HTML5 Beta, my CPU usage hovers around <b>20-25%</b>:<br />
<a href="http://waynepan.com/wp-content/uploads/2010/01/youtube-html5.png"><img src="http://waynepan.com/wp-content/uploads/2010/01/youtube-html5.png" alt="" title="youtube-html5" width="385" height="286" class="aligncenter size-full wp-image-482" /></a></p>
<p>Not a month into the new year and already one of my <a href="http://waynepan.com/2010/01/05/2010-predictions/">2010 predictions</a> is rolling along.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2010/01/21/html5-video-and-performance/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>2010 Predictions</title>
		<link>http://waynepan.com/2010/01/05/2010-predictions/</link>
		<comments>http://waynepan.com/2010/01/05/2010-predictions/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 22:19:30 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[predictions]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=467</guid>
		<description><![CDATA[
iPhone 4G &#8211; Just as the sun will rise, Apple will release a new iPhone every year. My only prediction is that the screen resolution will be more than the current 3G. They have to keep pace with the Droid, Nexus One, HTC HD2, etc&#8230;
First compelling HTML5 apps that will force people to get off [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><b>iPhone 4G</b> &#8211; Just as the sun will rise, Apple will release a new iPhone every year. My only prediction is that the screen resolution will be more than the current 3G. They have to keep pace with the Droid, Nexus One, HTC HD2, etc&#8230;</li>
<li><b>First compelling HTML5 apps that will force people to get off IE</b> &#8211; Native video support will be the driving force here. Imagine if every YouTube video <a href="http://www.youtube.com/html5">was in HTML5</a>. Native video support requires much less processing power than Flash video. All those low powered netbooks out there will finally be able to play internet video without stuttering.</li>
<li><b>Android market share surpasses iPhone</b> &#8211; Enterprise will embrace Android over iPhone since Android is open. That coupled with free with contract Android phones, this is a no brainer.</li>
<li><b><a href="http://gowalla.com/">Gowalla</a> will be the dominate location based social &#8220;network&#8221;</b> &#8211; Loopt will sink as foursquare and Gowalla gain. It&#8217;s too early to tell but to me it&#8217;s a coin flip between the two. However, I do think Gowalla&#8217;s model for rewards is much better than foursquare&#8217;s Mayor model. As time goes on, Mayors will be harder and harder to usurp making the &#8220;game&#8221; aspect less fun.</li>
<li><b>Facebook will IPO and not acquire Zynga</b> &#8211; 2010 is ripe for IPO after all the &#8216;09 M&#038;A. Zynga will get left behind as Facebook will continue to grow at an outstanding rate.</li>
<li><b>Chrome OS won&#8217;t make a dent</b> &#8211; How do you explain to a regular consumer that the netbook they&#8217;re about to buy is basically only a browser. &#8220;So you mean I only get Internet Explorer for the same price as this Windows (XP) machine?&#8221; I&#8217;m secretly hoping that it&#8217;s a raging success because it means WebKit gains more marketshare.</li>
<li><b>There will be an Apple tablet</b> &#8211; I&#8217;m not going to say anymore. It&#8217;s all been <a href="http://arstechnica.com/staff/fatbits/2010/01/antacid-tablet.ars">said</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2010/01/05/2010-predictions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>2009 Predictions Retrospective</title>
		<link>http://waynepan.com/2009/12/29/2009-predictions-retrospective/</link>
		<comments>http://waynepan.com/2009/12/29/2009-predictions-retrospective/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 00:45:55 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[predictions]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=440</guid>
		<description><![CDATA[2009 is ending, a year that started with Sequoia&#8217;s RIP: Good Times fresh in everybody&#8217;s mind. However, 2009 saw some major M&#038;A activity. 
I made some predictions at the beginning of the year, let&#8217;s see how they played out. Last year I was 50% correct&#8230;

Twitter will not be acquired &#8211; Correct! Many people measure the [...]]]></description>
			<content:encoded><![CDATA[<p>2009 is ending, a year that started with <a href="http://venturebeat.com/2008/10/10/the-sequoia-rip-good-times-presentation-get-your-copy-here/">Sequoia&#8217;s RIP: Good Times</a> fresh in everybody&#8217;s mind. However, 2009 saw some <a href="http://www.techcrunch.com/2009/12/18/top-tech-acquisitions-2009/">major M&#038;A activity</a>. </p>
<p>I made some <a href="http://waynepan.com/2009/01/03/2009-predictions/">predictions at the beginning of the year</a>, let&#8217;s see how they played out. Last year I was 50% correct&#8230;</p>
<ul>
<li><b>Twitter will not be acquired</b> &#8211; <span style='color: green'>Correct!</span> Many people measure the success of Twitter in terms of traffic to twitter.com, but traffic isn&#8217;t what Twitter wants. Twitter is a platform and as Jack put it <a href="http://blogs.wsj.com/digits/2009/06/03/twitter-a-success-when-people-stop-talking-about-it-co-founder-says/">&#8220;Twitter’s a success for us when people stop talking about it&#8221;</a>. I also predicted that Twitter would get their first sniff of revenue this year and <a href="http://www.techcrunch.com/2009/11/20/realtime-crunchup-twitter-coo/">they did</a> in the form of search deals with Bing and Google.</li>
<li><b>Digg will not be acquired</b> &#8211; <span style='color: green'>Correct!</span> Digg&#8217;s appeal as an acquisition target went up threefold when they launched their <a href="http://about.digg.com/blog/ads-you-can-digg…or-bury">innovate ad platform</a>. No numbers have been released but as an avid Digger, the platform definitely works. I&#8217;ve clicked on my fair share of Digg ads simply because they appealed to me.</li>
<li><b>Apple will open up iTunes infrastructure to developers to start accepting micro-payments</b> &#8211; <span style=' color: red'>Wrong!</span> Apple did do something around payments, they enabled app developers to charge or in-app purchases in free apps. One step closer to opening up their payment platform. If Apple did this, <a href="https://squareup.com/">Square</a> would be belly up.</li>
<li><b>Android phones sales will not exceed iPhones, maybe in 2010</b> &#8211; <span style='color: green'>Correct!</span> <a href="http://metrics.admob.com/wp-content/uploads/2009/11/AdMob-Mobile-Metrics-Oct-09.pdf">AdMob&#8217;s latest metrics report</a>, which measures <u>ad requests not marketshare</u> it&#8217;s clear Apple still has a substantial lead. Even based off ad requests it&#8217;s clear Android is no where near Apple and for this purpose, I&#8217;m calling it good enough.
<p>I guess I&#8217;m lucky that Google hasn&#8217;t released the Nexus One yet. Next year I definitely think Android will have a great marketshare than the iPhone purely based off the number of Android devices (low cost at that too) emerging.</li>
<li><b>Facebook connect will become more ubiquitous than OpenID as a way to login to websites</b> &#8211; <span style='color: green'>Correct!</span> Facebook says <a href="http://www.facebook.com/press/info.php?statistics">80,000</a> websites have implemented Facebook Connect. The best number I can find for OpenID is <a href="http://www.janrain.com/openid">25,000</a>. Yahoo will soon use Facebook for it&#8217;s social features, Facebook&#8217;s platform will only continue to grow.</li>
<li><b>IE6 marketshare will fall under 10% by years end</b> &#8211; <span style=' color: red'>Wrong!</span> <a href="http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2&#038;qpmr=40&#038;qpdt=1&#038;qpct=3&#038;qptimeframe=M">IE6 still holds at 22%</a>, and I still cry everyday. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/12/29/2009-predictions-retrospective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digging into PastryKit</title>
		<link>http://waynepan.com/2009/12/16/digging-into-pastrykit/</link>
		<comments>http://waynepan.com/2009/12/16/digging-into-pastrykit/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 10:21:18 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pastrykit]]></category>
		<category><![CDATA[safari]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=444</guid>
		<description><![CDATA[If you haven&#8217;t already, go read the DaringFireball piece on PastryKit. Are you back? Good. If you&#8217;re the least bit like me, you&#8217;re probably a least a little bit intrigued. If you&#8217;re sorta like me you probably cut and pasted http://help.apple.com/iphone/3/mobile/dist/PastryKit-ug-compact.js into jsbeautifier.org. If you&#8217;re kinda like me you also dug into http://help.apple.com/iphone/3/mobile/javascript.js to see [...]]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t already, go read the <a href="http://daringfireball.net/2009/12/pastrykit">DaringFireball piece on PastryKit</a>. Are you back? Good. If you&#8217;re the least bit like me, you&#8217;re probably a least a little bit intrigued. If you&#8217;re sorta like me you probably cut and pasted <a href="http://help.apple.com/iphone/3/mobile/dist/PastryKit-ug-compact.js">http://help.apple.com/iphone/3/mobile/dist/PastryKit-ug-compact.js</a> into <a href="http://jsbeautifier.org/">jsbeautifier.org</a>. If you&#8217;re kinda like me you also dug into <a href="http://help.apple.com/iphone/3/mobile/javascript.js">http://help.apple.com/iphone/3/mobile/javascript.js</a> to see how PastryKit is used. And finally, if you&#8217;re exactly like me, you&#8217;ve probably already dissected the framework and won&#8217;t need to read this post <img src='http://waynepan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PastryKit, at least the one on the iPhone User Guide, contains (it&#8217;s possible their compiler strips out classes/functions their site doesn&#8217;t use)</p>
<ul>
<li><b>PKUtils</b> &#8211; collection of util functions (eg. degreesToRadians, objectHasMethod, etc)</li>
<li><b>PKClass, PKObject</b> &#8211; classes that make inheritance easier. PKObjects to have observer methods for properties and PKClasses are able to synthetize properties ala ObjC.</li>
<li><b>PKPoint, PKSize, PKImage</b> &#8211;  self explanatory OOO objects for points, sizes, and &lt;img&gt; </li>
<li><b>PKAnimator</b> &#8211; simple animator class taskrunner/setTimeout style. Even PastryKit doesn&#8217;t use WebKitAnimations since the API is <a href="http://waynepan.com/2008/08/08/iphone-css-animations-thoughts-and-issues/">fubar&#8217;d</a>! As far as I can tell nothing in the framework or iPhone User Guide uses this</li>
<li><b>PKTransition</b> &#8211; This is where all the real animation is done, including the scroll effect, has the ability to commit animation transactions.</li>
<li><b>PKView, PKContentView, PKRootView</b> &#8211; View hierarchy, akin to one you would set up in Interface Builder. Very Xcode. I echo Gruber&#8217;s sentiments that PastryKit could show up in the next DashCode. Or at the very least the remnants of Apple&#8217;s web apps as an app strategy circa 2008.</li>
<li><b>PKScrollIndicator</b> &#8211; The magical class that creates the DHTML scrollbar when a view is scrolled.</li>
<li><b>PKSearchBar, PKTableView, PKNavigationView, PKToolbar</b> &#8211; the main view classes used to construct an actual app. (Along with PKScrollView, PKTableViewCell, PKNavigationItem, PKControl)</li>
</ul>
<p>If you&#8217;ve built anything in Xcode all this seems very familiar. Applications are built by setting up a hierarchy of views such as:</p>
<pre class='brush:javascript'>
// create a new navigation view
navigation = new PKNavigationView();
// set a size for the view
navigation.size = new PKSize(height, width);
// init some basic parameters about the view
 // add the view to the root view
PKRootView.sharedRoot.addSubview(navigation);
// build the rest of your views
</pre>
<p>I gave myself a couple hours to build a basic view app from scratch using PastryKit. It was painful and time consuming. There are plenty of methods that are required by the framework that you must declare unknowingly (eg. tableViewCellForRowAtPath vs tableViewCustomCellForRowAtPath dependent on what your table view is styled). Without proper documentation the framework is difficult to do any real work with. I&#8217;ll tinker with it some more but if you&#8217;re interested in a semi-prepackaged PastryKit and my work so far you can grab it <a href="http://waynepan.com/s/pastrykit_experiment.tgz">here</a>.</p>
<p>PKScrollIndicator is the best part of the framework, <a href="http://www.jqtouch.com/">jQTouch</a> should definitely look into &#8220;borrowing&#8221; this code.  Meanwhile, I&#8217;ll be waiting for a documented official release of PastryKit.</p>
<p><b>Bonus</b>: You can use the following to disable scrolling in Mobile Safari.</p>
<pre class='brush:javascript'>
document.addEventListener('touchmove', function(e) {
  e.preventDefault();
}, true);
</pre>
<p>This coupled with window.scrollTo(0,0) is how PastryKit hides the navigation bar.</p>
<p><i>Update:</i> Sorry, should be document.addEventListener() instead of window.addEventListener(). I&#8217;ve added a <a href="http://waynepan.com/s/noscroll">demo no scroll page here</a>. Just view the source.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/12/16/digging-into-pastrykit/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Streaming Cure for Digital Packrat</title>
		<link>http://waynepan.com/2009/11/15/streaming-cure-for-digital-packrat/</link>
		<comments>http://waynepan.com/2009/11/15/streaming-cure-for-digital-packrat/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 20:30:53 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=438</guid>
		<description><![CDATA[Two years ago I read this article from wired.com outlines how downloading has lead to a digital version of compulsive hoarding. I definitely had some sort of this disorder with hard drives and CD-Rs full of digital content – most of which I&#8217;ve never even consumed. 
In the past couple of years that need to [...]]]></description>
			<content:encoded><![CDATA[<p>Two years ago I read <a href="http://www.wired.com/techbiz/people/news/2007/03/72737">this article from wired.com</a> outlines how downloading has lead to a digital version of <i>compulsive hoarding</i>. I definitely had some sort of this disorder with hard drives and CD-Rs full of digital content – most of which I&#8217;ve never even consumed. </p>
<p>In the past couple of years that need to collect has faded. Why? Streaming.</p>
<p>With the advent of the streaming age (<a href="http://youtube.com">YouTube</a>, <a href="http://hulu.com">Hulu</a> and Netflix streaming for video, <a href="http://imeem.com">IMEEM</a> and <a href="http://lala.com">Lala</a> for music) there&#8217;s absolutely no need to horde any longer. With every thing just a few keystroke away, there&#8217;s no need to download, catalog, store, organize, curate your own private digital collection.</p>
<p>Anybody else experience the same change in your downloading habits?</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/11/15/streaming-cure-for-digital-packrat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bypassing Palm Pre&#8217;s Sprint Activation</title>
		<link>http://waynepan.com/2009/09/08/bypassing-palm-pres-sprint-activation/</link>
		<comments>http://waynepan.com/2009/09/08/bypassing-palm-pres-sprint-activation/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 03:33:20 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pre]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=431</guid>
		<description><![CDATA[Update: This whole process has been automated and &#8220;idiot-proofed&#8221; by Rod Whitby on his blog.
Last week, I went to pick up a Palm Pre sans a Sprint contract. The Sprint sales person had no problem selling me a $550 Palm Pre, but it was up to me to &#8220;Activate&#8221; the device. Sadly, I couldn&#8217;t find [...]]]></description>
			<content:encoded><![CDATA[<p><b>Update</b>: This whole process has been automated and &#8220;idiot-proofed&#8221; by <a href="http://www.rwhitby.net/blog/webos-internals/meta-doctor.html">Rod Whitby on his blog</a>.</p>
<p>Last week, I went to pick up a Palm Pre sans a Sprint contract. The Sprint sales person had no problem selling me a $550 Palm Pre, but it was up to me to &#8220;Activate&#8221; the device. Sadly, I couldn&#8217;t find good step by step instructions on how to do this. The <a href="http://www.webos-internals.org/wiki/Patch_webOS_Bypassing_Activation">best I could find</a>, still was very confusing because it never explained why I was doing the things it was asking me to do.</p>
<p>So here&#8217;s a step-by-step tutorial on how to bypass Sprint&#8217;s activation for a Palm Pre. Hopefully you can use the webOS Internals tutorial and this to bypass activation. This will enable you to develop apps or use the Palm Pre as a wifi/bt device. <i>Note, you will need to be comfortable with linux command line, tools, and editing files.</i></p>
<p>First, the goal of this &#8220;hack&#8221; is to bypass the Sprint Activation but <b>also</b> to enable WiFi so you can create a profile on palm.com without service. We are going to be basically hacking an additional menu item which then brings up the WiFi preferences pane.<br />
<span id="more-431"></span></p>
<ol>
<li>Download the WebOS image <a href="http://palm.cdnetworks.net/rom/pre_p100eww/webosdoctorp100ewwsprint.jar">here</a>.</li>
<li>Unzip the image to a directory say <i>~/pre</i>, rename the .jar to .zip if you need to. Remember to move the original file out of <i>~/pre</i> so you can start over. Also we do not want to include this when we finally rebuild the image.</li>
<li>in <i>~/pre/resources</i> make a new directory <i>webOS/</i>. This lets us untar webOS in a clean directory and rebuild the image easily. <b>directory structure is important when rebuilding the image</b> </li>
<li>move <i>~/pre/resources/webOS.tar</i> to <i>webOS/</i></li>
<li>cd <i>~/pre/resources/webOS</i> and untar webOS.tar. Delete webOS.tar (so that we don&#8217;t include the original file when rebuilding the image)</li>
<li>in <i>~/pre/resources/webOS</i> make a new directory called <i>nova/</i></li>
<li>move  <i>~/pre/resources/webOS/nova-cust-image-castle.rootfs.tar.gz</i> into <i>nova/</i>. </li>
<li>cd <i>~/pre/resources/webOS/nova/</i> and <b>as root</b> untar <i>nova-cust-image-castle.rootfs.tar.gz</i> <b>doing this as root is important!</b>. Delete nova-cust-image-castle.rootfs.tar.gz</li>
<li>If all went well you should now have the webOS image unpacked in <i>~/pre/resources/webOS/nova</i>. You should also have files in <i>~/pre/resources/webOS/nova/dev</i>. If you didn&#8217;t sudo or missed some steps, you&#8217;re doing it wrong. Start over now.</li>
<li><i> all directories are now relative to ~/pre/resources/webOS/nova/</i>. First, lets bypass the activation app. Edit: <i>usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js</i> and replace the body of the setUpFirstUse() function
<pre class='brush:javascript'>
function setUpFirstUse () {
  setupSimulator();
  isDevice = true;
}
</pre>
</li>
<li>Next, we have to patch the First Use app to bring up the WiFi pref panel. You&#8217;re going to need to know a little bit of javascript here, but if you pay attention it should be easy. Edit the file <i>usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js</i>. Find the function tapHandler, and change the following block of code:
<pre class='brush:javascript'>
var labels = [{label: $L('Emergency call'), command: 'emergency-call'},
      {label: $L('Cancel'), command: 'cancel'}
      ];
</pre>
<p>to</p>
<pre class='brush:javascript'>
var labels = [{label: $L('Emergency call'), command: 'emergency-call'},
      {label: $L('Enable WiFi'), command: 'peef-hack-mode'},
      {label: $L('Cancel'), command: 'cancel'}
      ];
</pre>
</li>
<li>In the same file find the function popupChoose and add another else/if branch to the following block (obviously don&#8217;t comment out code):
<pre class='brush:javascript'>
   if(value == "emergency-call") {
      // code commented out for my safety, don't comment out!
    } else if (value == "customer-care") {
      // code commented out for my safety, don't comment out
    }
</pre>
<p>to</p>
<pre class='brush:javascript'>
   if(value == "emergency-call") {
      // code commented out for my safety, don't comment out
    } else if (value == "customer-care") {
      // code commented out for my safety, don't comment out
    } else if (value == "peef-hack-mode") {
      AppAssistant.accountService.peefMode();
    }
</pre>
</li>
<li>Next we need to add the function peefMode() to handle our request. In <i>usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js</i>, add the following block of code immediately after the Class.create line (near the top):
<pre class='brush:javascript'>
peefMode: function() {
  return new Mojo.Service.Request("palm://com.palm.applicationManager/open", {
    parameters: {
      id: 'com.palm.app.wifi',
      params: {}
    }
  });
},
</pre>
</li>
<li>Now we&#8217;re done adding functions we just need to make sure our image is valid. This means correcting the md5&#8217;s of the files we touched. This means take the md5 of <i>usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js</i>, <i>usr/palm/applications/com.palm.app.firstuse/app/controllers/firstuse-util.js</i>, <i>usr/palm/applications/com.palm.app.firstuse/app/models/account-service.js</i>. In OS X that means running <i>md5 usr/palm/applications/com.palm.app.firstuse/app/controllers/app-assistant.js</i>. This will give you a 32 character hash of the file.</li>
<li>Edit <i>usr/lib/ipkg/info/com.palm.app.firstuse.md5sums</i> and replace your new md5&#8217;s the 3 files above.</li>
<li>Now we just need to rebuild the image. If you&#8217;ve followed my steps above, in <i>~/pre/resources/webOS/nova</i> run <i>sudo tar cvpzf ../nova-cust-image-castle.rootfs.tar.gz ./</i></li>
<li>In <i>~/pre/resources/webOS</i> delete <i>nova/</i> (<i>rm -rf nova</i>). Now tar up this directory run <i>tar cvf ../webOS.tar ./</i></li>
<li>In <i>~/pre/resources</i> delete <i>webOS/</i> (<i>rm -rf webOS</i>).</li>
<li>Almost done&#8230; in <i>~/pre/META-INF</i> delete <i>JARKEY.*</i></li>
<li>In <i>~/pre/META-INF</i> edit MANIFEST.MF and only leave the top 2 lines (ie remove all the SHA-1 hashes in the file)</li>
<li>Now, in <i>~/pre</i> recreated the image by running <i>jar cvMf webosdoctorp100ewwsprint.jar *</i> (some claim you can just use zip, but I&#8217;m not sure about this.)</li>
<li>Now start the firmware flasher by running <i>java -jar webosdoctorp100ewwsprint.jar</i>, follow the steps up until it asks you to plug in the device.</li>
<li>With the device <b>OFF</b>, hold the Volume Up key and plug the device into the machine. Your firmware should start flashing. If your device fails to reboot, just reboot it forcefully by removing the battery.</li>
<li>After booting up, it should be on the  &#8220;Create Palm Profile&#8221; screen. Now we use what we&#8217;ve hacked into the image. Tap the phone icon in the corner and you should have an &#8220;Enable WiFi&#8221; option in the menu! Connect your Pre to a WiFi and now you should be able to create a Palm Profile. (If you can&#8217;t exit the WiFi Preference screen after connecting just remove the battery again. You should connect to via WiFi after reboot.)</li>
</ol>
<p>Whew, if you&#8217;ve done everything right you should have a Palm Pre device to develop apps on. Contract free of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/09/08/bypassing-palm-pres-sprint-activation/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Best Argument Against Government AppStore Intervention</title>
		<link>http://waynepan.com/2009/08/27/best-argument-against-government-appstore-intervention/</link>
		<comments>http://waynepan.com/2009/08/27/best-argument-against-government-appstore-intervention/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 16:25:53 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[appstore]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=425</guid>
		<description><![CDATA[The FCC is probing Apple, AT&#038;T, and Google over the whole Google voice fiasco. Although I wish Apple would open up it&#8217;s platform, I definitely don&#8217;t think the government should get involved. Also  is any precedence set for the government intervention? No, I don&#8217;t believe so. Everybody is comparing Apple and the iPhone to [...]]]></description>
			<content:encoded><![CDATA[<p>The FCC is probing Apple, AT&#038;T, and Google over the whole Google voice fiasco. Although I wish Apple would open up it&#8217;s platform, I definitely don&#8217;t think the government should get involved. Also  is any precedence set for the government intervention? No, I don&#8217;t believe so. Everybody is comparing Apple and the iPhone to Microsoft and Windows. The argument is that the government got involved there so why shouldn&#8217;t they intervene and stop Apple?</p>
<p>The best counter I&#8217;ve heard to this was discussed three weeks ago on the <a href="http://www.engadget.com/2009/08/07/engadget-podcast-158-08-07-2009/">Engadget podcast</a> (start listening at 23:05). Instead of thinking of Microsoft and Windows, think of Nintendo and the Wii (or Sony/PS3, Microsoft/XBox).</p>
<p>Think about it. Nintendo controls what&#8217;s available for sale on it&#8217;s console system. They also have an AppStore where they disallow content (e.g. they would never allow an emulator that enables you to play all NES games).  They censor games, take a cut of sales, and they have full control of the eco-system. Yet, there&#8217;s no government intervention asking Nintendo to open up their platform. We purchase these console fully knowing that they will never be open.</p>
<p>At the risk of sounding like a fanboy, sadly Apple is just a victim of their own success.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/08/27/best-argument-against-government-appstore-intervention/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From a Walled Garden to 1984</title>
		<link>http://waynepan.com/2009/07/29/from-a-walled-garden-to-1984/</link>
		<comments>http://waynepan.com/2009/07/29/from-a-walled-garden-to-1984/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 02:45:19 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=415</guid>
		<description><![CDATA[
Everybody, hailed the iPhone as the savior to set developers and mobile businesses free from the walled gardens of traditional carriers. At first, Apple instantly gifted developers with easy access to a mobile audience that bypassed having to deal with carriers. The ancient lumbering beasts that are Verizon, AT&#038;T, Sprint, and T-Mobile were out of [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://waynepan.com/wp-content/uploads/2009/07/apple19845.jpg" alt="apple19845" title="apple19845" width="400" height="295" class="size-full wp-image-416" /><br />
Everybody, hailed the iPhone as the savior to set developers and mobile businesses free from the walled gardens of traditional carriers. At first, Apple instantly gifted developers with easy access to a mobile audience that bypassed having to deal with carriers. The ancient lumbering beasts that are Verizon, AT&#038;T, Sprint, and T-Mobile were out of the picture. Now we didn&#8217;t have to worry about being &#8220;on deck&#8221; or pre-installed onto phones to reach a mobile audience. All we had to do was submit our application to Apple and within a couple weeks, BOOM, someone with an iPhone would have your application.</p>
<p>Sadly, we all knew that we were climbing out of the walled garden only to land straight into 1984.</p>
<p>The problem is that Apple doesn&#8217;t need to explain why it removed Google Voice, NetShare, Podcaster, or Sling from the App Store. Developers can try to <a href="http://carpeaqua.com/2009/07/28/where-do-i-sign-up/">abandon</a> the platform, but there are plenty of others to take their place. Developers and businesses can&#8217;t just turn a blind eye to the 30-40 million (depending on who you ask) iPhone install base. To put that number into perspective, when you factor in iPod Touches, it rivals one of the best handheld selling devices of all time, Nintendo DS, in  <a href="http://www.appleinsider.com/articles/09/04/23/apples_ipod_touch_sales_double_nearly_on_par_with_iphone.html">yearly sales</a>.</p>
<p>I&#8217;m going to predict that Apple doesn&#8217;t have to back down from it&#8217;s position any time soon and there will be nary a mention of abandoning ship from everybody attending the sold out <a href="http://www.iphonedevcamp.org/">iPhoneDevCamp</a> this weekend.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/07/29/from-a-walled-garden-to-1984/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Google Chrome OS</title>
		<link>http://waynepan.com/2009/07/07/new-google-chrome-os/</link>
		<comments>http://waynepan.com/2009/07/07/new-google-chrome-os/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 05:45:22 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=410</guid>
		<description><![CDATA[Google just announced that they will be releasing an OS based around Chrome. An amazing move for Google as this gets them instantly on a the radar of every netbook manufacturer out there.
Microsoft&#8217;s licensing fees for Windows are generally $40+ per copy. Manufacturers are barely eeking out a profit in the sub $300 price range [...]]]></description>
			<content:encoded><![CDATA[<p>Google just announced that they will be releasing an <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html">OS based around Chrome</a>. An amazing move for Google as this gets them instantly on a the radar of every netbook manufacturer out there.</p>
<p>Microsoft&#8217;s licensing fees for Windows are generally $40+ per copy. Manufacturers are barely eeking out a profit in the sub $300 price range and having to pay per copy of Windows kills that margin. There is already a ton of competition in this space from <a href="http://moblin.org/">Moblin</a> to <a href="http://www.jolicloud.com/">Jolicloud</a> to whatever is going to be on the <a href="http://www.techcrunch.com/2009/06/03/crunchpad-the-launch-prototype/">CrunchPad</a>. </p>
<p>At first glance, from a product perspective, I wonder why Google is not using Android? There is already an SDK out there, Android is already open source, and Android already has an app marketplace. Bifurcating their &#8220;OS&#8221; strategy seems like a bad move on the surface.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/07/07/new-google-chrome-os/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.436 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-12 14:17:17 -->
