<?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>satine.org &#187; Technology</title>
	<atom:link href="http://www.satine.org/tag/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.satine.org</link>
	<description>by Charles Ying</description>
	<lastBuildDate>Thu, 02 Feb 2012 00:47:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The New Facebook Playbook</title>
		<link>http://www.satine.org/archives/2012/02/01/the-new-facebook-playbook/</link>
		<comments>http://www.satine.org/archives/2012/02/01/the-new-facebook-playbook/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 00:45:21 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.satine.org/archives/2012/02/01/the-new-facebook-playbook/</guid>
		<description><![CDATA[Now that Facebook is going public, they&#8217;ll need&#8230; Search Mail and IM Phone OS Maps Flipboard Killer :-)]]></description>
			<content:encoded><![CDATA[<p>Now that Facebook is going public, they&#8217;ll need&#8230;</p>

<ul>
<li>Search</li>
<li>Mail and IM</li>
<li>Phone OS</li>
<li>Maps</li>
<li>Flipboard Killer :-)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2012/02/01/the-new-facebook-playbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The PlayStation Web App</title>
		<link>http://www.satine.org/archives/2011/09/27/playstation-web-app/</link>
		<comments>http://www.satine.org/archives/2011/09/27/playstation-web-app/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 19:23:23 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.satine.org/?p=540</guid>
		<description><![CDATA[This is the new PlayStation Video Unlimited service. This PlayStation app runs at a full 60 frames per second (when you see it on a PS3), has tons of 3D graphics effects, full-speed 1080p video playback, and a fluid, hardware accelerated, animated user experience. What you may not know is that this is a web [...]]]></description>
			<content:encoded><![CDATA[<iframe id="viddler-c8ce3cad" src="http://www.viddler.com/embed/c8ce3cad/?f=1&#038;offset=0&#038;autoplay=0&#038;disablebranding=0" width="600" height="385" frameborder="0"></iframe>

<p>This is the new <a href="http://blog.us.playstation.com/2011/09/27/video-unlimited-preview-coming-to-playstation-3/">PlayStation Video Unlimited</a> service. This PlayStation app runs at a full 60 frames per second (when you see it on a PS3), has tons of 3D graphics effects, full-speed 1080p video playback, and a fluid, hardware accelerated, animated user experience. What you may not know is that this is a web app.</p>

<h2>A Web App? On A PlayStation?</h2>

<p>The <a href="http://blog.us.playstation.com/2011/09/27/video-unlimited-preview-coming-to-playstation-3/">Video Unlimited</a> service is a JavaScript application with a carefully designed runtime platform and very lightweight APIs to access hardware accelerated 3D graphics and shader effects, video playback engine, and other aspects of the PS3 hardware.</p>

<p>Two years ago, I helped start this project at Sony. In six weeks, our team took a working Flash UI prototype and recreated it on a PS3, complete with an early version of the platform, now internally called Trilithium. <a href="http://twitter.com/abustin">Alex Bustin</a>, the same UI developer who built the original UI prototype, also wrote the Trilithium port.</p>

<p>The release of Video Unlimited was delayed until now, but Trilithium was used to build another of Sony&#8217;s partner&#8217;s apps, <a href="http://blog.us.playstation.com/2010/11/10/get-hulu-plus-on-your-ps3-today/">Hulu Plus for PS3</a>. (See video at the end of this post).</p>

<h2>The Trilithium Platform</h2>

<p>Trilithium&#8217;s strength comes from taking full advantage of the PS3 hardware and existing well-optimized frameworks to do everything from graphics to video playback, leaving the decisions about the high level application to a very flexible JavaScript core API.</p>

<p>We built Trilithium for several reasons:</p>

<ul>
<li>Make good use of the complex 8-core + GPU PS3 hardware without killing ourselves.</li>
<li>Give this power to our UX developers and designers.</li>
<li>Let partners easily build their own PS3 apps with little knowledge of PS3 architecture.</li>
<li>Rapidly develop with a flexible environment.</li>
</ul>

<p>True, there&#8217;s <a href="http://joehewitt.com/post/what-the-web-is-and-is-not/">no hyperlinking</a> and Trilithium isn&#8217;t open (for now).</p>

<p>But Video Unlimited, Hulu Plus, and future Trilithium apps do show what&#8217;s possible when you bring the best parts of web and native technology together.</p>

<h2>Hulu Plus for PS3</h2>

<iframe width="600" height="337" src="http://www.youtube.com/embed/oVyZsss-4cg" frameborder="0" allowfullscreen></iframe>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2011/09/27/playstation-web-app/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Google Chrome Frame</title>
		<link>http://www.satine.org/archives/2009/09/22/google-chrome-fram/</link>
		<comments>http://www.satine.org/archives/2009/09/22/google-chrome-fram/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 00:48:24 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.satine.org/?p=373</guid>
		<description><![CDATA[Google Chrome Frame is huge. Revisiting my post on Google Chrome Lite from February: In 2009, Google should embed Google Chrome into Google Toolbar, which has a HUGE install base. This would be a huge driver to accelerate Google&#8217;s web platform, convert more folks over to a modern browser experience. Imagine a Chrome &#8220;Lite&#8221; running [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html">Google Chrome Frame is huge.</a></p>

<p>Revisiting my post on <a href="http://www.satine.org/archives/2009/02/19/on-google-chrome-lite/">Google Chrome Lite from February</a>:</p>

<blockquote>
  <p>In 2009, Google should embed Google Chrome into Google Toolbar, which has a HUGE install base. This would be a huge driver to accelerate Google&#8217;s web platform, convert more folks over to a modern browser experience. Imagine a Chrome &#8220;Lite&#8221; running inside Toolbar inside IE, billed as a &#8220;web accelerator&#8221;.</p>
</blockquote>

<p>(Insert humorous smug remark here. Okay, it&#8217;s out of my system.)</p>

<p>This is the right strategy for Google to use against Microsoft in the browser wars. Google&#8217;s 2009 playbook probably looks similar to this:</p>

<ol>
<li>Let Google Chrome Frame mature in open source into a completely awesome (and hopefully secure) web plugin. Web developers get excited and really start using HTML5 instead of talking about it. Security issues are vetted and addressed.</li>
<li>Bundle Chrome Frame 1.0 into Google Toolbar (hell, Google everything), with huge established (and unpublicized to date) distribution.</li>
<li>Launch both as part of a multi-prong &#8220;death by a thousand cuts&#8221; attack (Chrome standalone, OEM, Chrome OS, Chrome Mobile, YouTube HTML5 video, etc.) on Internet Explorer.</li>
<li>???</li>
<li>Profit!</li>
</ol>

<p>What should Microsoft do? Get busy. Find a differentiator (graphics, JavaScript, sync, hardware port, XBOX, etc.), <a href="http://gizmodo.com/5079630/ballmer-on-webkit-we-may-look-at-that">stop looking at WebKit</a> and start shipping it already.</p>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/sjW0Bchdj-w" frameborder="0"></iframe>

<p>Technorati Tags: <a href="http://technorati.com/tag/Google+Chrome+Frame" rel="tag">Google Chrome Frame</a>, <a href="http://technorati.com/tag/Chrome" rel="tag"> Chrome</a>, <a href="http://technorati.com/tag/WebKit" rel="tag"> WebKit</a>, <a href="http://technorati.com/tag/Microsoft" rel="tag"> Microsoft</a>, <a href="http://technorati.com/tag/Internet+Explorer" rel="tag"> Internet Explorer</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2009/09/22/google-chrome-fram/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A Kick Ass Browser Renaissance</title>
		<link>http://www.satine.org/archives/2009/07/05/a-kickass-browser-renaissance/</link>
		<comments>http://www.satine.org/archives/2009/07/05/a-kickass-browser-renaissance/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 05:00:55 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bestof]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.satine.org/?p=302</guid>
		<description><![CDATA[Why are building browsers in vogue again? Quite simply, a browser renaissance, started with WebKit, a small and flexible open source code base that used less memory and power, and kicked ass at rendering the Web. WebKit is really helping folks easily create and extend browsers with its very flexible and understandable code base. It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<h3>Why are building browsers in vogue again?</h3>

<p>Quite simply, a browser renaissance, started with <a href="http://www.webkit.org/">WebKit</a>, a small and flexible open source code base that used less memory and power, and kicked ass at rendering the Web.</p>

<p>WebKit is really helping folks easily create and extend browsers with its very flexible and understandable code base. <a href="http://www.satine.org/archives/2008/09/02/webkit-is-the-new-linux/">It&#8217;s truly the Linux renaissance</a> again, driving innovation, and place browsers where they were difficult or impossible to put before. And WebKit&#8217;s rivals didn&#8217;t sit still, they&#8217;re also kicking ass at an insane clip, and we, the users and developers, benefit.</p>

<h3>Great hardware needs great software.</h3>

<p>The browser is really your OS now &#8211; your apps live and run there, and you want them to run well. The browser experience matters again. That&#8217;s why Apple is here, making a great browser to sell with their hardware. Google, Nokia, HTC, Palm and many others are here for the same reason.</p>

<p>Closely related to this activity are pure browser vendors like Opera, selling a quality mobile web browser to hardware OEMs that don&#8217;t have the time to make their own. <a href="http://gigaom.com/2009/07/05/for-firefox-a-challenging-future-awaits/">This is also Mozilla&#8217;s goal with Fennec</a>.</p>

<h3>A flashier World Wide Web.</h3>

<ul>
<li>Flash: Adobe needs to protect its dominance on the desktop Web interactive media experience. Adobe also wants to duplicate Flash&#8217;s success in mobile.</li>
<li>CSS Visual Effects: Apple is tired of Flash&#8217;s slow pace of innovation, performance and constant crashing on Mac OS X. Steve and Bertrand&#8217;s insurance policy. And why the hell not when you make stuff like Quartz, Core Animation, QuickTime X, and iPhones.</li>
<li>Silverlight: Microsoft builds their own browser, why not their own Flash?</li>
<li>HTML5 Video: Everyone doesn&#8217;t want all video to go through a Flash plugin. Plus, <a href="http://www.satine.org/archives/2009/06/04/safari-4-css-video-effects/">cool video reflections</a>!</li>
</ul>

<h3>What your high tech company should think about.</h3>

<ul>
<li><p>If you make consumer hardware products, having a great browser will be a key strategic factor to having great applications, user experience, and long-term extensibility.</p></li>
<li><p>If you make consumer facing applications, browsers now offer the best user interface framework &#8220;toolkit&#8221;. There are only very few reasons to use or build a custom UI framework today, primarily availability and performance.</p></li>
<li><p>If you make pure web applications already, targeting these modern browsers now makes sense, the most desirable consumers now have these types of browsers, and the market share continues to climb.</p></li>
<li><p>If you make or use software frameworks, innovations in the browser wars have yielded some amazing technology that you should be taking advantage of. The 3 JavaScript engines, <a href="http://webkit.org/blog/214/introducing-squirrelfish-extreme/">WebKit Nitro</a>, <a href="http://code.google.com/p/v8/">V8</a>, and <a href="https://wiki.mozilla.org/JavaScript:TraceMonkey">Mozilla TraceMonkey</a> now are starting to surpass other dynamic languages in performance and other languages are starting to play catch up.</p></li>
<li><p>If you are Google, <a href="http://www.satine.org/archives/2009/02/19/on-google-chrome-lite/">I&#8217;d do this</a>.</p></li>
</ul>

<h3>While we&#8217;re talking about JavaScript &#8230;</h3>

<ul>
<li><p>Distributing computation work to browsers is a new frontier. Imagine offloading your search indexing or database indexing to visiting
users. Having compute clusters will lower the cost of building large scale distributed services in the near future. Today&#8217;s primary barrier for this is bandwidth consumption (distributed applications still have large amounts of I/O) but it will work today for certain applications.</p></li>
<li><p>JavaScript as a server-side language also makes great sense long-term, where code passes seamlessly between servers and clients. Today&#8217;s primary barrier for this is mature system libraries and standards for JavaScript, but there are already great companies working on this, and the concept is far from new. (too many links to share here)</p></li>
</ul>

<h3>Food for thought &#8230;</h3>

<p>Thanks to <a href="http://www.gigaom.com/">Om Malik</a> for the inspiration to write this post. The one question I wish I had a better answer for is: &#8220;Why does Apple have Safari on Windows?&#8221; I believe the answer may be something more than, &#8220;oh hell no, Google ain&#8217;t gonna release no WebKit browser on Windows before we do&#8230;&#8221; (<a href="http://en.wikipedia.org/wiki/Safari_(web_browser)#Safari_for_Windows">rewind to June 2007</a>) but what the actual answer is, we may not know for some time.</p>

<p><em>Updates:</em> Corrected that TraceMonkey is the Mozilla JS engine, not Tamarin. Thanks Dirkjan!</p>

<p>Technorati Tags: <a href="http://technorati.com/tag/WebKit" rel="tag"> WebKit</a>, <a href="http://technorati.com/tag/HTML5" rel="tag"> HTML5</a>, <a href="http://technorati.com/tag/JavaScript" rel="tag"> JavaScript</a>, <a href="http://technorati.com/tag/Browsers" rel="tag"> Browsers</a>, <a href="http://technorati.com/tag/Mozilla" rel="tag"> Mozilla</a>, <a href="http://technorati.com/tag/Opera" rel="tag"> Opera</a>, <a href="http://technorati.com/tag/Apple" rel="tag"> Apple</a>, <a href="http://technorati.com/tag/Google" rel="tag"> Google</a>, <a href="http://technorati.com/tag/Palm" rel="tag"> Palm</a>, <a href="http://technorati.com/tag/Nokia" rel="tag"> Nokia</a>, <a href="http://technorati.com/tag/RIM" rel="tag"> RIM</a>, <a href="http://technorati.com/tag/OHA" rel="tag"> OHA</a>, <a href="http://technorati.com/tag/Kitchen+Sink" rel="tag"> Kitchen Sink</a>, <a href="http://technorati.com/tag/Linux" rel="tag"> Linux</a>, <a href="http://technorati.com/tag/Flash" rel="tag"> Flash</a>, <a href="http://technorati.com/tag/Silverlight" rel="tag"> Silverlight</a>, <a href="http://technorati.com/tag/Microsoft" rel="tag"> Microsoft </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2009/07/05/a-kickass-browser-renaissance/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Safari 4 CSS Video Effects</title>
		<link>http://www.satine.org/archives/2009/06/04/safari-4-css-video-effects/</link>
		<comments>http://www.satine.org/archives/2009/06/04/safari-4-css-video-effects/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 15:00:27 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bestof]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.satine.org/?p=280</guid>
		<description><![CDATA[If you have a recent browser build of WebKit nightly, you&#8217;re going to love this movie trailers demo I&#8217;ve been hacking on. Click on the image above, select a movie trailer, and check out Safari 4&#8242;s video reflections using CSS Effects. Recent WebKit nightlies with the latest QuickTime installed give the best experience, with flawless [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.satine.org/research/webkit/video/trailers.html"><img src="http://www.satine.org/images/safari4-video.jpg" alt="Safari 4 Video" /></a></p>

<p>If you have a recent browser build of <a href="http://www.webkit.org/">WebKit nightly</a>, you&#8217;re going to love this <a href="http://www.satine.org/research/webkit/video/trailers.html">movie trailers demo</a> I&#8217;ve been hacking on. Click on the image above, select a movie trailer, and check out Safari 4&#8242;s <em>video reflections</em> using CSS Effects. Recent WebKit nightlies with the latest QuickTime installed give the best experience, with flawless transitioned video reflections. Safari 4 Beta also provides a decent experience, but doesn&#8217;t transition reflections.</p>

<p>What you are seeing is:</p>

<ul>
<li>A WebKit reflection applied to a HTML5 video tag. It&#8217;s also just <em>1 line</em> of CSS, and the same reflection is applied to the movie poster thumbnails as well:</li>
</ul>

<p><code>-webkit-box-reflect: below 1 -webkit-gradient(linear, left top, left bottom, color-stop(0.5, transparent), color-stop(1.0, rgba(255, 255, 255, 0.5)));</code></p>

<ul>
<li><p>HTML5 video events, &#8220;loadstart&#8221; and &#8220;finished&#8221; which then change the page state.</p></li>
<li><p>CSS Transitions handle all of the animation, so my code simply adds and removes the &#8220;darker&#8221; class to make the text and the movie thumbnails fade out while the video is playing. Things like stopping the video before it fully fades in just works.</p></li>
</ul>

<p>Up until Safari 4, video reflections had not been working very smoothly. But times sure have changed.</p>

<p>I should note that <em>video reflections</em> are really tough to do, especially in a web browser. Flash makes it somewhat possible, but not easy, and certainly not as fast as what you see here. And I hope this example gives you a taste of what a cinematic user experience might look like in a web browser.</p>

<p>You may also be interested in <a href="http://www.satine.org/archives/2008/11/06/coverflow-for-safari-on-iphone/">my post on CSS CoverFlow</a>, complete with snapping, physics, and perspective correct 3D.</p>

<p>Technorati Tags: <a href="http://technorati.com/tag/Safari+4" rel="tag">Safari 4</a>, <a href="http://technorati.com/tag/Apple" rel="tag"> Apple</a>, <a href="http://technorati.com/tag/WebKit" rel="tag"> WebKit</a>, <a href="http://technorati.com/tag/CSS" rel="tag"> CSS</a>, <a href="http://technorati.com/tag/HTML5" rel="tag"> HTML5</a>, <a href="http://technorati.com/tag/video" rel="tag"> video</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2009/06/04/safari-4-css-video-effects/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Nokia Finally Answers the iPhone</title>
		<link>http://www.satine.org/archives/2008/12/02/nokia-finally-answers-the-iphone/</link>
		<comments>http://www.satine.org/archives/2008/12/02/nokia-finally-answers-the-iphone/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 09:45:27 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Nokia N97]]></category>

		<guid isPermaLink="false">http://www.satine.org/?p=137</guid>
		<description><![CDATA[When Lilia Martinez-Coburn, my colleague at hi5, first told me about the upcoming Nokia N97, I was skeptical. I&#8217;ll eat my words today. Nokia is certainly rising to the challenge and seems to be on track to be a BMW to Apple&#8217;s Mercedes-Benz in the new &#8220;internet in your pocket&#8221; generation of mobile phones. Consider [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=2O2Li74EYew"><img src="http://www.satine.org/wp-content/uploads/2008/12/nokia_n97-300x217.jpg" alt="" title="Nokia N97" width="300" height="217" class="alignnone size-medium wp-image-138" /></a></p>

<p>When <a href="http://mobilebuzz.blogspot.com/">Lilia Martinez-Coburn</a>, my colleague at <a href="http://www.hi5.com/">hi5</a>, first told me about the upcoming <a href="http://www.nokia.com/A4136001?newsid=1274500">Nokia N97</a>, I was skeptical. I&#8217;ll eat my words today.</p>

<p>Nokia is certainly rising to the challenge and seems to be on track to be a BMW to Apple&#8217;s Mercedes-Benz in the new &#8220;internet in your pocket&#8221; generation of mobile phones. Consider these key ingredients:</p>

<ul>
<li><b>Cinematic UX</b> &#8211; Finally, someone has successfully xeroxed Apple&#8217;s Core Animation&#8217;s GPU + implicit animation model and who better than Nokia. The implicit animation model is key in making great UX with minimal pain and bugs. I suspect the UX polish is focused on the main &#8220;phone top&#8221; idle screen, but it&#8217;s a great showing.</li>
<li><b>Web Browser</b> &#8211; <a href="http://www.satine.org/archives/2008/09/02/webkit-is-the-new-linux/">It&#8217;s WebKit</a> and Nokia already has a decent port.</li>
<li><b>Industrial design</b> &#8211; N97&#8242;s form factor is great. Nokia is no slouch when it comes to ID, and they&#8217;re very close here. N97&#8242;s a fair amount thicker, but not too shabby.</li>
<li><b>A twist</b> &#8211; a physical keyboard and Flash + video support. <a href="http://www.satine.org/archives/2008/11/06/coverflow-for-safari-on-iphone/">Apple&#8217;s mobile web efforts have promise</a>, but people sure do <a href="http://daringfireball.net/2008/09/adobe_speaks_of_flash_player_for_iphone">ask for Flash a lot</a>.</li>
</ul>

<p>But there are details that we won&#8217;t know until the N97 ships and are key to making sure Nokia doesn&#8217;t pull a &#8220;Prada&#8221;. Those are:</p>

<ul>
<li><b>Performance</b> &#8211; Touch interfaces need to have minimal to no latency. Graphics needs to be fast, and I have no doubt a GPU is sitting in that N97. Hopefully S60 5th Edition is up to speed here.</li>
<li><b>Software Ecosystem</b> &#8211; Will Nokia provide an app store? Will there be refinements to S60 to let 3rd party developers finally make great apps? And can these developers make money? Nokia certainly is integrating with partners on the social networking front. But &#8230;</li>
<li><b>Nokia Maps?</b> &#8211; Well, I&#8217;m certainly skeptical of Nokia&#8217;s ability to out innovate Google on mapping technology, but I wish them the best of luck. Competition is always good, and I hope Nokia finds the game changer in building their own mapping service.</li>
</ul>

<p>I have two closing thoughts for now &#8211; 1) MacWorld is in January. I can&#8217;t wait to see that Apple tablet. 2) Finally, a new &#8220;internet communicator&#8221; with potential&#8230; though it hasn&#8217;t shipped yet.</p>

<p>2009 is going to be an interesting year.</p>

<p><b>Update:</b> Additional coverage from <a href="http://www.engadget.com/2008/12/02/nokia-unveils-flagship-n97-phone/">Engadget</a>, <a href="http://scobleizer.com/2008/12/02/nokia-n97-the-ultimate-facebook-device/">Robert Scoble</a>, <a href="http://gizmodo.com/5100707/nokia-n97-unveiled-the-first-high+end-n+series-touch-phone">Gizmodo</a></p>

<p>Technorati Tags: <a href="http://technorati.com/tag/Nokia+N97" rel="tag"> Nokia N97</a>, <a href="http://technorati.com/tag/iPhone" rel="tag"> iPhone</a>, <a href="http://technorati.com/tag/MacBook+touch" rel="tag"> MacBook touch</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2008/12/02/nokia-finally-answers-the-iphone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building CoverFlow for Safari on iPhone</title>
		<link>http://www.satine.org/archives/2008/11/06/coverflow-for-safari-on-iphone/</link>
		<comments>http://www.satine.org/archives/2008/11/06/coverflow-for-safari-on-iphone/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 16:22:57 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bestof]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.satine.org/?p=135</guid>
		<description><![CDATA[Did you know that 3D graphics and animation is possible with Safari on iPhone? If you have an iPhone, try out the CoverFlow (zflow) demo live with a live Flickr feed. This CoverFlow demo is part of a new open source project I&#8217;ve started, CSS-VFX. The idea with CSS-VFX is to demonstrate all the cool [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that 3D graphics and animation is possible with Safari on iPhone?</p>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/4FvsMhznf2I" frameborder="0"></iframe>

<p>If you have an iPhone, try out the <a href="http://css-vfx.googlecode.com/svn/trunk/examples/zflow.html">CoverFlow (zflow) demo live</a> with a live Flickr feed.</p>

<p>This CoverFlow demo is part of a new open source project I&#8217;ve started, <a href="http://code.google.com/p/css-vfx/"><b>CSS-VFX</b></a>. The idea with <b>CSS-VFX</b> is to demonstrate all the cool things that are possible with Apple&#8217;s CSS Visual Effects extensions.</p>

<h2>How does it work?</h2>

<p>The <b>zflow</b> demo in <a href="http://code.google.com/p/css-vfx/wiki/Introduction">CSS-VFX</a> uses the Apple CSS Visual Effects extensions for hardware accelerated (on iPhone!) 3D perspective correct transforms and easily animated transitions. HTML 5 Canvas is used for simulating reflections.</p>

<ul>

<li><b>zflow</b> starts by loading each image from the images array. When each image is loaded, we scale the image to fit in a square region, and apply 3D <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransforms.html">CSS transforms</a> to scale it in place.</li>

<li><b>Reflections</b> &#8211; zflow then takes the scaled image and creates a Canvas element that contains a gradient alpha mask of the image&#8217;s reflection (using a &#8220;reflect&#8221; function to do this) and positions the canvas element in place.</li>

<li><b>Touch Controller</b> &#8211; zflow creates a TouchController object, who&#8217;s job is to field touch events from Mobile Safari and calculate an appropriate offset.</li>

<li><b>Clicking</b> &#8211; zflow detects when no move events have been made, and zooms + rotates the focused image forward by setting a <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html">&#8220;CSS Transition&#8221;</a>ed 3D transform on the focused image. Clicking again transitions the image back.</li>

<li><b>Inertia</b> &#8211; zflow achieves inertia by setting the &#8220;transition timing function&#8221; of the &#8220;tray&#8221; to an &#8220;ease-out&#8221; function, which slows things down. On the touch end event, we calculate the projected velocity and set the tray&#8217;s target position to that location. <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html">CSS Transitions</a> handles the decay in velocity as the transition timing function executes &#8212; slowing the tray down gradually.</li>

</ul>

<h2>What&#8217;s next?</h2>

<p>I hope that <a href="http://code.google.com/p/css-vfx/wiki/Introduction">CSS-VFX</a> can become a series of graphics gems that clearly illustrate how to use CSS Visual Effects, as well as talk about some of the corner cases and best practices to get the best performance. If you come up with something you&#8217;d like to include, please let me know. I&#8217;ll be tinkering with a few more gems myself, just watch the project for more as time goes on.</p>

<p>And tell a friend, I can&#8217;t wait to see what everyone else does with these great new features in Safari on iPhone.</p>

<h2>Where to learn more</h2>

<p>The <b>CSS-VFX</b> <a href="http://code.google.com/p/css-vfx/wiki/Introduction">open source project</a> is a good place to start. You can just use the <b>zflow</b> code in your own iPhone web pages (there&#8217;s docs on how to do that); and deep dive into the innerworkings of <b>zflow</b> to understand what exactly is going on.</p>

<p>Also, check out Apple&#8217;s proposed extensions: <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransforms.html">CSS 3D Transforms</a>, <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html">CSS Transitions</a>, and <a href="http://webkit.org/specs/CSSVisualEffects/CSSAnimation.html">CSS Animation</a>. They provide full specifications on what&#8217;s possible. Of course, there are a few gotchas when using these in practice, and I hope to document these as things progress.</p>

<p>Technorati Tags: <a href="http://technorati.com/tag/iPhone" rel="tag"> iPhone</a>, <a href="http://technorati.com/tag/Safari" rel="tag"> Safari</a>, <a href="http://technorati.com/tag/CSS+Visual+Effects" rel="tag"> CSS Visual Effects</a>, <a href="http://technorati.com/tag/graphics" rel="tag"> graphics</a>, <a href="http://technorati.com/tag/3D" rel="tag"> 3D </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2008/11/06/coverflow-for-safari-on-iphone/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>What You Need To Know About Amazon SimpleDB</title>
		<link>http://www.satine.org/archives/2007/12/13/amazon-simpledb/</link>
		<comments>http://www.satine.org/archives/2007/12/13/amazon-simpledb/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 07:39:09 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.satine.org/archives/2007/12/13/a-brief-overview-of-amazon-simpledb/</guid>
		<description><![CDATA[Well after being under NDA for so long, I&#8217;m glad to be able to say that Amazon SimpleDB has gone into limited beta. Congratulations to everyone on the SDS / SimpleDB team; their several years of work on SimpleDB (formerly called SDS) is a brilliant piece of engineering. What&#8217;s cool about SimpleDB Really large data [...]]]></description>
			<content:encoded><![CDATA[<p>
Well after being under NDA for so long, I&#8217;m glad to be able to say that <a href="http://aws.amazon.com/simpledb">Amazon SimpleDB has gone into limited beta</a>. Congratulations to everyone on the SDS / SimpleDB team; their several years of work on SimpleDB (formerly called SDS) is a brilliant piece of engineering.
</p>

<h2>What&#8217;s cool about SimpleDB</h2>

<p><ul>
    <li>Really large data sets</li>
    <li>Really Fast</li>
    <li>Highly Available &#8211; It&#8217;s Amazon. Running Erlang. Whoa.</li>
    <li>On demand scaling &#8211; Like S3, EC2, with a sensible data metering pricing model</li>
    <li>Schemaless &#8211; major cool factor for me here; items are little hash tables containing sets of key, value pairs</li>
</ul></p>

<h2>Considerations you&#8217;ll want to think about</h2>

<p><ul>
    <li>Eventual Consistency &#8211; Data is not immediately propagated across all nodes&#8230; the latency is usually around a second, but for high data sets or loads, you may experience more latency. On the plus side, your data isn&#8217;t lost!</li>
    <li>Queries are lexigraphical &#8211; You&#8217;ll need to store data in lexicographical ordered form (zero-pad your integers, add positive offsets to negative integer sets, and convert dates into something like ISO 8601)</li>
    <li>Search Indexes &#8211; You&#8217;ll need to construct your own indexes for text search &#8211; The SimpleDB query expressions don&#8217;t support text search, so you&#8217;ll have to construct inverted indexes to properly do &#8220;text search&#8221;. This is actually a really great lightweight way to do this and I&#8217;m sure many interesting indexing schemes will be possible.</li>
</ul></p>

<h2>Under the hood</h2>

<div style="float: right; margin-left: 20px;">
<iframe src="http://rcm.amazon.com/e/cm?t=insidelooking-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=193435600X&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFEE&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</div>

<p>
    According to the SimpleDB team, SimpleDB is built on top of Erlang. One of the developers, <a href="http://www.jetcafe.org/~jim/">Jim Larson</a> and I worked together at Sendmail, and he was part of a team doing some amazing stuff with an <a href="http://www.jetcafe.org/~npc/doc/euc00-sendmail.html">Erlang message store</a> way back in 2000.
</p>

<p>
While you don&#8217;t need to know Erlang to use SimpleDB, many people have visited here interested in its Erlang roots. If you are interested in learning Erlang, I can recommend <i>Programming Erlang</i>, written by Erlang&#8217;s creator &#8211; the best introduction you can find. I&#8217;ve associate-linked to it on Amazon; just for a little meta-fun.
</p>

<h2>The data model is simply:</h2>

<p><ul>
    <li>Large collections of <strong>items</strong> organized into <strong>domains</strong>.</li>
    <li>Items are little hash tables containing <strong>attributes</strong> of key, value pairs.</li>
    <li>Attributes can be searched with various lexicographical queries.</li>
</ul></p>

<h2>Now you can easily build:</h2>

<p><ul>
    <li>Search indexes</li>
    <li>Log databases / analysis tools &#8211; </li>
    <li>Data mining stores</li>
    <li>Tools for World Domination</li>
</ul></p>

<h2>Further Reading</h2>

<p><ul>
    <li><a href="http://www.amazon.com/gp/browse.html?node=342335011">Amazon SimpleDB Home Page</a></li>
    <li><a href="http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/DeveloperGuide/?">Developer&#8217;s Guide</a></li>
    <li><a href="http://www.allthingsdistributed.com/2007/12/eventually_consistent.html">Werner Vogels on Eventual Consistency</a></li>
</ul></p>

<p>
I also wrote a very basic Python module for SimpleDB to handle the XML and REST stuff (too bad it&#8217;s not JSON, at least for now), which I&#8217;ll release as soon as I figure out how much of the NDA is now lifted. There are a few floating around, so it shouldn&#8217;t be too long before they appear publicly.
</p>

<p><p>
<h3>Updates:</h3>
<ul>
    <li>Added a link to <a href="http://www.jetcafe.org/~npc/">Nick Christenson</a>&#8216;s paper on <a href="http://www.jetcafe.org/~npc/doc/euc00-sendmail.html">Sendmail&#8217;s Erlang message store</a> &#8211; A great read for those of you building large scale messaging systems or anything in Erlang.</li>
    <li>Added a link to Werner Vogels&#8217; article on <a href="http://www.allthingsdistributed.com/2007/12/eventually_consistent.html">eventual consistency</a> &#8211; a great background behind SimpleDB&#8217;s consistency design choice.</li>
    <li>Whether or not SimpleDB and Dynamo are the same underlying technology has never been confirmed by an authoritative source. That&#8217;s all I&#8217;m allowed to say.</li>
</ul></p>

<p>Technorati Tags: <a href="http://technorati.com/tag/Amazon+SimpleDB" rel="tag"> Amazon SimpleDB</a>, <a href="http://technorati.com/tag/SimpleDB" rel="tag"> SimpleDB</a>, <a href="http://technorati.com/tag/Amazon" rel="tag"> Amazon</a>, <a href="http://technorati.com/tag/Erlang" rel="tag"> Erlang</a>, <a href="http://technorati.com/tag/Databases" rel="tag"> Databases </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2007/12/13/amazon-simpledb/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>A Mac Games Announcement in August?</title>
		<link>http://www.satine.org/archives/2007/06/12/a-mac-games-announcement-in-august/</link>
		<comments>http://www.satine.org/archives/2007/06/12/a-mac-games-announcement-in-august/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 04:46:26 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.satine.org/archives/2007/06/12/a-mac-games-announcement-in-august/</guid>
		<description><![CDATA[Here&#8217;s what John Carmack said at the WWDC &#8217;07 Keynote during his demo: &#8230; in fact we&#8217;re showing on the Mac platform, the PC, the PS3, and the 360, the same data running. We&#8217;re going to be demoing this at E3, as well as our QuakeCon in August and I expect actually to have another [...]]]></description>
			<content:encoded><![CDATA[<p>
    Here&#8217;s what John Carmack said at the WWDC &#8217;07 Keynote during his demo:

<blockquote>
    &#8230; in fact we&#8217;re showing on the Mac platform, the PC, the PS3, and the 360, the same data running. We&#8217;re going to be demoing this at E3, as well as our QuakeCon in August and <b>I expect actually to have another Mac related announcement to make at that time</b> which we can&#8217;t quite go into right now&#8230;
</blockquote>

    What could that announcement be? All of id Software&#8217;s titles have been ported to OS X already &#8230; could this be a port to a new forthcoming Apple console? (might this be Apple TV?) Or perhaps an original mobile game title or port for the iPhone?
</p>

<p>
    We shall see.
</p>

<p>Technorati Tags: <a href="http://technorati.com/tag/Games" rel="tag"> Games</a>, <a href="http://technorati.com/tag/id+Software" rel="tag"> id Software</a>, <a href="http://technorati.com/tag/John+Carmack" rel="tag"> John Carmack</a>, <a href="http://technorati.com/tag/iPhone" rel="tag"> iPhone</a>, <a href="http://technorati.com/tag/Mac" rel="tag"> Mac</a>, <a href="http://technorati.com/tag/Apple+TV" rel="tag"> Apple TV</a>, <a href="http://technorati.com/tag/Apple" rel="tag"> Apple </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2007/06/12/a-mac-games-announcement-in-august/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Safari Is The iPhone Developer Platform</title>
		<link>http://www.satine.org/archives/2007/06/11/safari-is-the-iphone-developer-platform/</link>
		<comments>http://www.satine.org/archives/2007/06/11/safari-is-the-iphone-developer-platform/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 18:26:44 +0000</pubDate>
		<dc:creator>Charles Ying</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.satine.org/archives/2007/06/11/safari-is-the-iphone-developer-platform/</guid>
		<description><![CDATA[It&#8217;s official. Want to build applications for the iPhone? Safari is the solution. Web Standards is the SDK. As I wrote about earlier this month, and this year, this is how you do it. It&#8217;s standards based, it&#8217;s pretty, and it&#8217;s the future. Apple announced their iPhone extensions, there&#8217;s lots of integration points to make [...]]]></description>
			<content:encoded><![CDATA[<p>
    It&#8217;s official. Want to build applications for the iPhone? <a href="http://www.apple.com/safari">Safari</a> is the solution.
    Web Standards is the SDK.
</p>

<p>
    As I wrote about <a href="http://www.satine.org/archives/2007/06/01/iphone-sdk-developer-preview-now-available/">earlier this month</a>, and <a href="http://www.satine.org/archives/2007/01/11/how-to-write-an-iphone-app/">this year</a>, this is how you do it. It&#8217;s standards based, it&#8217;s pretty, and it&#8217;s the future.
</p>

<p>
    Apple announced their iPhone extensions, there&#8217;s lots of integration points to make web apps first class on iPhone. Here are a few things you can do:
</p>

<ul>
    <li>Dial phone numbers.</li>
    <li>Send e-mail.</li>
    <li>Link to built-in maps.</li>
</ul>

<p>
    All of the web developers on the planet just became iPhone developers. Ladies and gentlemen, here comes the Mobile Internet Revolution.
</p>

<p>
    <a href="http://digg.com/tech_news/SAFARI_is_the_iPhone_Developer_Platform"><img src="http://digg.com/img/badges/91x17-digg-button-alt.gif" width="91" height="17" alt="Digg!" /></a>
</p>    

<p>Technorati Tags: <a href="http://technorati.com/tag/iPhone" rel="tag"> iPhone</a>, <a href="http://technorati.com/tag/Safari" rel="tag"> Safari</a>, <a href="http://technorati.com/tag/Apple" rel="tag"> Apple</a>, <a href="http://technorati.com/tag/OS+X" rel="tag"> OS X</a>, <a href="http://technorati.com/tag/WebKit" rel="tag"> WebKit </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.satine.org/archives/2007/06/11/safari-is-the-iphone-developer-platform/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

