<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Uza's Blog - Adobe Flash &amp; AIR</title>
	
	<link>http://www.uza.lt</link>
	<description>Adobe Flash &amp; AIR, JS, AS3, Unity3D</description>
	<lastBuildDate>Wed, 09 Mar 2011 21:34:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/uza" /><feedburner:info uri="uza" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Incubator News Roundup (Molehill)</title>
		<link>http://feedproxy.google.com/~r/uza/~3/e6_hz9ege9U/</link>
		<comments>http://www.uza.lt/2011/02/27/molehill-roundup/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 18:26:10 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[CS5]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=557</guid>
		<description><![CDATA[NOTE: this post was last updated with new links on March 9, 2011 New and truly revolutionary versions of Flash Player and Adobe AIR named &#8220;Incubator&#8221; (formerly Molehill APIs) were made available on Adobe Labs. To those who are unfamiliar with the new release, it features hardware accelerated 3D graphics support. As Adobe puts it: [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>NOTE: this post was last updated with new links on March 9, 2011</strong></em></p>
<p><img src="http://www.uza.lt/wp-content/uploads/2011/02/flash-1-e1298837446667.jpg" alt="" title="Unity3d supports Flash Player build target" width="510" height="220" class="aligncenter size-full wp-image-577" /></p>
<p>New and truly revolutionary versions of Flash Player and Adobe AIR named &#8220;Incubator&#8221; (formerly Molehill APIs) were made available on Adobe Labs. To those who are unfamiliar with the new release, it features hardware accelerated 3D graphics support.</p>
<p>As Adobe puts it: &#8220;The Adobe® AIR® and Adobe Flash® Player Incubator is a technology preview program for more adventurous developers who are willing to experiment with Flash Platform runtime features that are in early development stages.&#8221;</p>
<p><strong>New Incubator builds of Adobe Flash Player and Adobe AIR available here:</strong><br />
<strong><a href="http://labs.adobe.com/technologies/flashplatformruntimes/incubator/">Download Incubator Builds</a></strong> and check <strong><a href="http://labs.adobe.com/wiki/index.php/Flash_Player_Incubator">Wiki</a></strong></p>
<p>If you are keen on exploring 3D capabilities right away, you can use one of the pre-release versions of the popular 3D frameworks that also announced Incubator support. To see a list of all features that are included in the Incubator builds, check out <a href="http://matthewfabb.com/blog/2011/03/01/what-else-is-in-the-flash-player-11-incubator-build-beyond-molehill/">this post</a>.</p>
<h3>3D frameworks supporting Molehill:</h3>
<ul>
<li><a href="http://away3d.com/away3d-4-0-alpha-release-broomstick">Away3D 4.0 Alpha </a></li>
<li><a href="http://bit.ly/e8DIOD">Flare3D 2.0</a></li>
<li><a href="http://aerys.in/minko">Aerys Minko</a></li>
<li><a href="http://www.sophie3d.com">Sophie 3D</a></li>
<li><a href="http://www.ambiera.com/coppercube/">CopperCube 2.5</a></li>
<li><a href=" http://zest3d.digital-glue.com/">Zest3D</a></li>
<li><a href="http://alternativaplatform.com/en/alternativa3d/">Alternativa 8</a> (available soon)</li>
</ul>
<h3>Here are some LIVE demos:</h3>
<p>(make sure you have Flash Player Incubator installed first)</p>
<p><strong>Added on March 9:</strong></p>
<ul>
<li><a href="http://not-so-stupid.com/clients/not-so-stupid/away4/path/">Grid Map Generator</a></li>
<li><a href="http://www.yomogi.sakura.ne.jp/~si/SoftIllness/molehill/app4_direct.html">AGAL Demo (cool shape morph)</a></li>
<li><a href="http://www.inear.se/offpiste/demo4/">Snowboard Demo</a></li>
<li><a href="http://www.deltastrike.org/">DeltaStrike</a></li>
<li><a href="http://www.lidev.com.ar/demos/fractals/tree/broomstick/">Fractal Tree Generator</a></li>
<li><a href="http://flashrealtime.com/demos/m2d/ExamplePhysicsGame.html">Simple Game Physics Example</a> (M2D)</li>
</ul>
<p><strong>Added on March 8:</strong></p>
<ul>
<li><a href="http://www.theflashfactor.com/wp-content/uploads/2011/03/broomstick_coverflow/index.html">Flickr Coverflow</a></li>
<li><a href="http://blog.theflashblog.com/flash/MoleTest.html">Spiral Carousel</a></li>
<li><a href="http://q3fl.impulse12.com/">Full Quake 3 game</a></li>
<li><a href="http://www.sophie3d.com/website/flash_player_11_demo/sophie3D_demo_01/SOPHIE_3D_FLASH_PLAYER_11.html">Sofa</a> (Sophie3D)</li>
<li><a href="http://www.sophie3d.com/website/flash_player_11_demo/sophie3D_demo_02/SOPHIE_3D_FLASH_PLAYER_11.html">Fiat 500</a> (Sophie3D)</li>
<li><a href="http://www.lidev.com.ar/demos/fractals/sponge/v1/">Fractal Sponge</a></li>
<li><a href="http://www.spictrading.com/MolehillShaders/NormalMapShader/">Normal Map Shader</a></li>
<li><a href="http://www.nulldesign.de/wp-content/uploads/2011/022/Main.html">Animated Creatures</a></li>
<li><a href="http://ryanspeets.com/bloom.html">Bloom Demo</a></li>
<li><a href="http://www.quilix.com/node/95">Molecule Viewer</a>(article + demo)</li>
</ul>
<p><strong>Added on Feb 27:</strong></p>
<ul>
<li><a href="http://aerys.in/minko-quake-3">Quake 3</a></li>
<li><a href="http://molehill.zombietycoon.com/">Zombie Tycoon</a></li>
<li><a href="http://alternativaplatform.com/en/demos/maxracer/">MAX Racer Demo</a> Alternativa 8 <strong>(150MB)</strong></li>
<li><a href="http://www.mcfunkypants.com/2011/molehill-terrain-demo/">40k polygon terrain demo</a></li>
<li><a href="http://infiniteturtles.co.uk/projects/away3d/broomstick/ShallowWaterDemo.html">Shallow Water Manipulation</a></li>
<li><a href="http://infiniteturtles.co.uk/projects/away3d/broomstick/LoaderOBJTest.html">Hi-res Head Model (OBJ)</a></li>
<li><a href="http://not-so-stupid.com/clients/not-so-stupid/away4/duck/">Duck Demo</a></li>
<li><a href="http://infiniteturtles.co.uk/projects/away3d/broomstick/LoaderMD5Test.html">MD5 Animated Model Demo</a></li>
<li><a href="http://infiniteturtles.co.uk/projects/away3d/broomstick/EnvMapTest.html">Environment map test</a></li>
<li><a href="http://infiniteturtles.co.uk/projects/away3d/broomstick/AnimBlendTest.html">Animation blend test</a></li>
<li><a href="http://infiniteturtles.co.uk/projects/away3d/broomstick/EnvMapDiffuseTest.html">Environment map diffuse test</a></li>
<li>2D performance demo: <a href="http://www.bytearray.org/wp-content/projects/molehill2d/molehill/">with molehill</a> and <a href="http://www.bytearray.org/wp-content/projects/molehill2d/displaylist/">without</a></li>
<li><a href="http://acemobe.com/dungeon/demo.php">Treasure Dungeon</a></li>
<li><a href="http://iflash3d.com/performance/how-fast-is-molehill/">How fast is molehill</a> (article and demos)</li>
<li>JigLib Physics Demos (Away 4.0) &#8211; <a href="http://bit.ly/g0FSJM">demo1</a>, <a href="http://bit.ly/fCJCZt">demo2</a>, <a href="http://bit.ly/gwPRuR">demo3</a>, <a href="http://bit.ly/frvxOW">demo4</a>,  <a href="http://bit.ly/dS4Av8">demo5</a> </li>
<li><a href="http://ryanspeets.com/uncategorized/adobe-releases-molehill/">Plane and triangle</a> by Ryan Speets (demo + source)</li>
<li><a href="http://www.ambiera.com/coppercube/demo.php?demo=backyard">Ambiera CopperCube Backyard Demo</a></li>
<li><a href="http://disturbmedia.com/george/3d/molehill/radiolarian/">Radiolarian</a></li>
<li><a href="http://disturbmedia.com/george/3d/molehill/starfish/">Starfish</a></li>
<li><a href="http://clockmaker.jp/labs/110228_molehill_particles/Particle500.html">500 Particles</a></li>
<li><a href="http://examples.swfgeek.net/flash/molehill/away3d_jiglib/index.html">Away3D + JigLib</a></li>
<li><a href="http://liquify.eu/VoxelRenderer/">Voxel Renderer</a></li>
</ul>
<h3>Videos (only new stuff):</h3>
<ul>
<li><a href="http://www.youtube.com/watch?v=uYgOxzQ6bNU">Tanki Online 2.0 Trailer (Molehill)</a></li>
<li><a href="http://www.youtube.com/watch?v=JSlehUCU9gs">See What Flash Can do with the Molehill 3D API</a></li>
</ul>
<h3>Just Source Code:</h3>
<ul>
<li><a href="https://gist.github.com/847106">Molehill Spinning Cube</a> on Gist</li>
</ul>
<h3>Tutorials and Articles:</h3>
<ul>
<li><a href="http://www.bytearray.org/?p=2555">Digging more into the Molehill APIs</a> by Thibault Imbert</li>
<li><a href="http://blog.kaourantin.net/?p=104">Molehill from scratch with Adobe Flash CS5</a></li>
<li><a href="http://lab.polygonal.de/2011/02/27/simple-2d-molehill-example/">Simple 2D Molehill Example</a></li>
<li><a href="http://blog.kaourantin.net/?p=110">2D Sprite Sheets with Molehill</a> by Tinic Uro (demo + source)</li>
<li><a href="http://iflash3d.com/performance/how-fast-is-molehill/">How fast is molehill</a> (article and demos)</li>
<li><a href="http://www.swfgeek.net/2011/02/27/molehill-3d-apis-for-adobe-flash-player-and-adobe-air/">Molehill 3D APIs</a> article by SwfGeek</li>
<li><a href="http://www.bytearray.org/?p=2810">Changing the web, again</a> article by Thibault Imbert</li>
<li><a href="http://www.disturbmedia.com/wiki/index.php/How_to_get_started_with_the_Molehill_API_and_Away3D_40.html">Using FTD and Away3D 4.0</a> by George Profenza</li>
<li><a href="http://johnlindquist.com/2011/02/28/quickstart-for-molehill-and-away3d/">Quickstart for Molehill and Away3D</a> by John Lindquist</li>
<li><a href="http://blog.cjcat.net/2011/02/simple-bunnyhill-demos/">Simple Bunnyhill Demos</a> (article and sources)</li>
<li><a href="http://pixelante.ca/index.php?b=molehill_flash_tutorial_perpolygon_distance_fog">Per-Polygon Distance Fog</a> tutorial by Pixelante</li>
<li><a href="http://pixelante.ca/index.php?b=molehill_flash_tutorial_pervertex_distance_fog">Per-Vertex Distance Fog</a> tutorial by Pixelante</li>
<li><a href="http://pixelante.ca/index.php?b=molehill_flash_tutorial_faster_vertex_lighting">Fast Vertex Lighting</a> tutorial by Pixelante</li>
<li><a href="http://www.rictus.com/muchado/2011/02/28/demystifying-molehill-part-1">Demystifying Molehill &#8211; Part 1</a> &#8211; good read</li>
<li><a href="http://haxe.org/doc/advanced/flash3d">Using Flash 3D API in haXe</a></li>
<li><a href="http://blog.theflashblog.com/?p=2593">Converting wii game to Molehill (Video Interview With Mandreel)</a></li>
<li><a href="http://www.mandreel.com/?page_id=530">Convert C++ application to Molehill using Mandreel</a></li>
<li><a href="http://labs.jam3.ca/2011/03/molehill-getting-started/">Molehill Getting Started</a> &#8211; great article, recommended</li>
<li><a href="http://ryanspeets.com/flash/agalminiassembler-primer/">AGALMiniAssembler Primer</a></li>
<li><a href="http://pixelante.ca/index.php?b=molehill_flash_tutorial_agal_basics">AGAL basics</a></li>
</ul>
<h3>Related News:</h3>
<ul>
<li><a href="http://blogs.unity3d.com/2011/02/27/unity-flash-3d-on-the-web/">Unity3D announces support for publishing to Flash Player</a></li>
<li><a href="http://gamebuilderstudio.com/blog/molehill-support-in-gamebuilder-studio/">GameBuilder Studio announces Molehill support</a></li>
<li><a href="http://www.jiglibflash.com/blog/2011/02/27/jiglibflashfp11/">JigLib adds Away3D 4.0 (Molehill) support</a></li>
<li>HxSL &#8211; haXe Shader Language (<a href="http://ncannasse.fr/blog/announcing_hxsl/">announcement</a> and <a href="http://haxe.org/manual/hxsl">manual</a>)</li>
</ul>
<p><strong>Now, let&#8217;s change the web!</strong><br />
<strong><a href="http://twitter.com/pauliusuza">Follow me on twitter @pauliusuza</a></strong> for more news and updates on #flash and #molehill</p>
<img src="http://feeds.feedburner.com/~r/uza/~4/e6_hz9ege9U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2011/02/27/molehill-roundup/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2011/02/27/molehill-roundup/</feedburner:origLink></item>
		<item>
		<title>MAX 2010: 3D in Flash, AIR for Android and TVs, Controller Support!</title>
		<link>http://feedproxy.google.com/~r/uza/~3/hrV69kHSfss/</link>
		<comments>http://www.uza.lt/2010/10/25/max-2010-3d-in-flash-air-for-android-and-tvs-controller-support/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 19:08:04 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[MAX 2010]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=548</guid>
		<description><![CDATA[Day one of Adobe MAX 2010 announcements brought some pretty amazing things, and the conference is just getting started! 3D support in Flash First of, the most important announcement in my mind, full 3D support in Flash Player. While there&#8217;s no details about the technology itself, we have seen Kevin Lynch demo a 3D racing [...]]]></description>
			<content:encoded><![CDATA[<p>Day one of Adobe MAX 2010 announcements brought some pretty amazing things, and the conference is just getting started!</p>
<h2>3D support in Flash</h2>
<p>
First of, the most important announcement in my mind, full 3D support in Flash Player. While there&#8217;s no details about the technology itself, we have seen Kevin Lynch demo a 3D racing game which looked nowhere far from stunning and the processor was hovering around 0-1% of CPU. This is HUGE! With the current adoption rate of Flash Player (73% in 3 months) it will be the most popular 3D gaming platform once released to the wild, surpassing Unity3D and other smaller competitors in no time.
</p>
<h2>Game Controller Support</h2>
<p>This is epic as well &#8211; Kevin Lynch demoed controlling a game running inside a browser using mouse and then switching to a steering wheel and a PS3/XBOX type controller. By itself it means that Flash will finally be able to use a whole new range of game controller devices. However I think that this might be a hint to a whole bigger announcement Adobe could make in the next few days &#8211; PS3 support? Xbox? Who knows&#8230; <img src='http://www.uza.lt/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>AIR for Android and TVs</h2>
<p>AIR for Android SDK is now publicly available for download. Any developer building an app in AIR can now package their app for sale in the Android Market. Also it is now possible to build an app for Google TV, which runs Android. <a href="http://blogs.adobe.com/air/2010/10/adobe-air-2-is-now-available.html">Adobe blog has more info.</a></p>
<h2>Stage Video</h2>
<p>Native performance for video running inside Flash on tabled devices, mobiles and desktop. Again, awesome!</p>
<p>You can experience MAX conference streaming live using new Flash Player P2P technology:<br />
<a href="http://max.adobe.com/online/">http://max.adobe.com/online/</a></p>
<p>Let&#8217;s see what day 2 of MAX 2010 brings us!</p>
<img src="http://feeds.feedburner.com/~r/uza/~4/hrV69kHSfss" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/10/25/max-2010-3d-in-flash-air-for-android-and-tvs-controller-support/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/10/25/max-2010-3d-in-flash-air-for-android-and-tvs-controller-support/</feedburner:origLink></item>
		<item>
		<title>Alchemist 2 – AIR for Android</title>
		<link>http://feedproxy.google.com/~r/uza/~3/nQ2iVLYWsEg/</link>
		<comments>http://www.uza.lt/2010/10/23/alchemist-2-air-for-android/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 01:25:19 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=534</guid>
		<description><![CDATA[Today we have released the second version of our award winning puzzle &#8211; Alchemist 2 and this time it&#8217;s for Google Android platform and it&#8217;s build using Adobe AIR 2.5 for Android. Alchemist 2 features a lot of improvements over it&#8217;s predecessor, including a completely new gameplay engine, new gorgeous graphics, adaptive AI and unlockable [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bit.ly/cIOs8D"><img style="border:none;" src="http://www.uza.lt/wp-content/uploads/2010/10/android_alchemist2_inruntime.jpg" alt="" title="android_alchemist2_inruntime" width="510" height="400" class="alignleft size-full wp-image-538" /></a></p>
<p>Today we have released the second version of our award winning puzzle &#8211; Alchemist 2 and this time it&#8217;s for Google Android platform and it&#8217;s build using Adobe AIR 2.5 for Android.</p>
<p>Alchemist 2 features a lot of improvements over it&#8217;s predecessor, including a completely new gameplay engine, new gorgeous graphics, adaptive AI and unlockable achievements.</p>
<h2><strong><a href="http://bit.ly/cIOs8D">Buy Now!</a></strong> | <strong><a href="http://bit.ly/cjZYDa">Get FREE DEMO</a></strong></h2>
<img src="http://feeds.feedburner.com/~r/uza/~4/nQ2iVLYWsEg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/10/23/alchemist-2-air-for-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/10/23/alchemist-2-air-for-android/</feedburner:origLink></item>
		<item>
		<title>Dribbble Fever</title>
		<link>http://feedproxy.google.com/~r/uza/~3/XVNz-S21JGE/</link>
		<comments>http://www.uza.lt/2010/10/14/dribbble-fever/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 01:18:01 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=522</guid>
		<description><![CDATA[Dribbble pumps out so much inspiration it&#8217;s really a phenomenon. I&#8217;m constantly finding myself browsing through countless pages of shots and discovering awesome stuff. This shot by Kamil Khadeyev actually inspired me so much I decided do replicate it using only 3D (no Photoshop), my result done with Modo 401 in 6 hours is below: [...]]]></description>
			<content:encoded><![CDATA[<p>Dribbble pumps out so much inspiration it&#8217;s really a phenomenon. I&#8217;m constantly finding myself browsing through countless pages of shots and discovering awesome stuff. </p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/10/shot_1286878935.png" alt="" title="shot_1286878935" width="400" height="300" class="alignleft size-full wp-image-523" /></p>
<p>This shot by <a href="http://dribbble.com/shots/65026-Sweet-pixels">Kamil Khadeyev</a> actually inspired me so much I decided do replicate it using only 3D (no Photoshop), my result done with Modo 401 in 6 hours is below:</p>
<p><a href="http://www.uza.lt/wp-content/uploads/2010/10/stylefactory.png"><img src="http://www.uza.lt/wp-content/uploads/2010/10/stylefactory.jpg" alt="" title="stylefactory" width="510" height="340" class="alignleft size-full wp-image-525" /></a></p>
<p>Anyone got a spare dribbble invite? Anyone?!</p>
<img src="http://feeds.feedburner.com/~r/uza/~4/XVNz-S21JGE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/10/14/dribbble-fever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/10/14/dribbble-fever/</feedburner:origLink></item>
		<item>
		<title>Icon debut</title>
		<link>http://feedproxy.google.com/~r/uza/~3/FY0U7PIqFjk/</link>
		<comments>http://www.uza.lt/2010/08/19/uza_icons_one_free/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 02:51:18 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[icons]]></category>
		<category><![CDATA[26x26]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=461</guid>
		<description><![CDATA[Icon debut I always wanted to try my chances in icon design.. Now that I finally got my hands on it I would like to share my first icon set with you: The UZA ICONS / ONE set contains a total of 225 26&#215;26 pixel PNG icons. Download it for free!]]></description>
			<content:encoded><![CDATA[<div class="special">
<h2>Icon debut</h2>
<p>I always wanted to try my chances in icon design.. Now that I finally got my hands on it I would like to share <a href="http://www.uza.lt/icons">my first icon set</a> with you:</p>
<hr/>
<img src="http://www.uza.lt/wp-content/uploads/2009/04/uza_icons_one.jpg" alt="Uza icons one 26x26 png icon set" title="uza_icons_one" width="510" height="400" class="alignleft size-full wp-image-433" /><br />
<br/><br />
The <strong>UZA ICONS / ONE</strong> set contains a total of 225 26&#215;26 pixel PNG icons. <a href="http://www.uza.lt/icons">Download it for free!</a>
</div>
<img src="http://feeds.feedburner.com/~r/uza/~4/FY0U7PIqFjk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/08/19/uza_icons_one_free/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/08/19/uza_icons_one_free/</feedburner:origLink></item>
		<item>
		<title>IDev.tv plugin store is now live!</title>
		<link>http://feedproxy.google.com/~r/uza/~3/KH6m9uYfu4Y/</link>
		<comments>http://www.uza.lt/2010/08/13/idev-tv-plugin-store-is-now-live/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 10:23:59 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[IDev.tv Templates Websites Flash Actionscript 3]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=425</guid>
		<description><![CDATA[We have just added a plugin store to IDev.tv where you can purchase (and sell, please contact me for details) all kinds of goodies for IDev.tv platform. Go check it out! Every account now also comes with affiliate program where you can earn money by sharing IDev.tv with your friends. To start using it, just [...]]]></description>
			<content:encoded><![CDATA[<p>We have just added a plugin store to IDev.tv where you can purchase (and sell, please contact me for details) all kinds of goodies for IDev.tv platform. <a href="http://idev.tv"  target="_blank">Go check it out!</a></p>
<p><a href="http://idev.tv" target="_blank"><img src="http://www.uza.lt/wp-content/uploads/2010/08/store.jpg" alt="" title="store" width="510" height="350" class="alignleft size-full wp-image-426" /></a></p>
<p>Every account now also comes with affiliate program where you can earn money by sharing IDev.tv with your friends. To start using it, just sign up and check out &#8220;Affiliate Settings&#8221; section inside your IDev Account!</p>
<img src="http://feeds.feedburner.com/~r/uza/~4/KH6m9uYfu4Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/08/13/idev-tv-plugin-store-is-now-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/08/13/idev-tv-plugin-store-is-now-live/</feedburner:origLink></item>
		<item>
		<title>Beta Testers Wanted – www.IDev.tv</title>
		<link>http://feedproxy.google.com/~r/uza/~3/bGSG-gmE0zQ/</link>
		<comments>http://www.uza.lt/2010/08/02/beta-testers-wanted-www-idev-tv/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 23:26:06 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[IDev]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[SWC]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=416</guid>
		<description><![CDATA[For a while now, we at InRuntime have been working on a new product for Flash Platform and just couple of days ago we have released a public beta to the wild (woohoo!) It&#8217;s called IDev and it&#8217;s an advanced XML based template system for building fully functional Flash websites. It comes in three parts: [...]]]></description>
			<content:encoded><![CDATA[<p>For a while now, we at InRuntime have been working on a new product for Flash Platform and just couple of days ago we have released a public beta to the wild (woohoo!)  </p>
<p>It&#8217;s called <strong>IDev</strong> and it&#8217;s an advanced XML based template system for building fully functional Flash websites. It comes in three parts: a ready to use website (SWF + XML), a SWC library for developers and a set of online tools located at <a href="http://idev.tv">www.idev.tv</a>.</p>
<h3>You should be interested in IDev if:</h3>
<p>- <strong>You are a freelancer making Flash websites for a living</strong> (IDev serves as a perfect base for freelance development, allowing you to mix and re-use components to create unique online experiences)</p>
<p>- <strong>You are an Actionscript 3 developer making standalone Flash components and you would like to earn some cash</strong> (You will be able to easily port and sell your components as IDev plugins)</p>
<p>- <strong>You are a person / company who wants to set up their website without putting your hands in the code or hiring a programmer</strong> (IDev is fully customizable through XML, so you don&#8217;t have to know how to program)</p>
<h3>Sign Up, Talk, Share!</h3>
<p>We think that IDev is a great product and we would like to ask your assistance in getting it off the ground. Go to <a href="http://idev.tv">www.idev.tv</a> and <strong>SIGN UP</strong>, test it out by downloading your own copy from Launchpad and let us know what you think about it. To make the visit worthwhile, we are giving away all our existing IDev plugins for <strong>FREE</strong> for every new user.</p>
<p>If you like IDev as much as we do, please <strong>SHARE IDev.tv</strong> with your friends!</p>
<img src="http://feeds.feedburner.com/~r/uza/~4/bGSG-gmE0zQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/08/02/beta-testers-wanted-www-idev-tv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/08/02/beta-testers-wanted-www-idev-tv/</feedburner:origLink></item>
		<item>
		<title>Gianduia vs. Flash</title>
		<link>http://feedproxy.google.com/~r/uza/~3/rayUZ14jZu4/</link>
		<comments>http://www.uza.lt/2010/05/10/gianduia-vs-flash/#comments</comments>
		<pubDate>Mon, 10 May 2010 01:16:03 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[AppKit]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[CoreData]]></category>
		<category><![CDATA[Foundation]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Gianduia]]></category>
		<category><![CDATA[Killer]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=379</guid>
		<description><![CDATA[Today, internet is full of stories about the Apple's secret weapon that will kill Silverlight, Java and Flash once and for all... Again! Sadly this is becoming sort of a cliche (of everyone wanting to kill Flash) and it's my second article in a row trying to give you a completely different point of view. [...]]]></description>
			<content:encoded><![CDATA[<p>Today, internet is full of stories about the Apple's secret weapon that <strong>will kill Silverlight, Java and Flash</strong> once and for all... <strong>Again!</strong> Sadly this is becoming sort of a cliche (of everyone wanting to kill Flash) and it's my second article in a row trying to give you a completely different point of view. </p>
<p>The mythical new framework is called <strong>Gianduia</strong> which relates to Gianduja a sweet chocolate containing about 30% hazelnut paste, invented in Turin by Caffarel in 1852 (<a href="http://en.wikipedia.org/wiki/Gianduja_%28chocolate%29" target="_blank">wikipedia</a>). I'm betting on a hazelnut reference in the logo once Gianduia is out!</p>
<p>Since early version of Gianduia is already deployed on some parts of Apple.com (<a href="http://concierge.apple.com/reservations/R002" target="_blank">here</a> and <a href="https://iphone-reserve.apple.com/WebObjects/RPRCustomer.woa/wa/buyiPhone?lang=en&#038;country=CA" target="_blank">here</a>), I went to find out what exactly is it. Here's what I found by digging through the available information and sources.</p>
<h2><strong>Gianduia is:</strong></h2>
<ul>
<li>A client-side Model View Controller based framework in JavaScript 1.x</li>
<li>Cocoa (with CoreData) and WebObjects translated to JavaScript</li>
<li>Lots of OS X / iPhone / iPad style interfaces in your web browser</li>
<li>Targeted at building HTML5 web apps using Cocoa</li>
<li><strong>Meant to unify multiple JS frameworks used by Apple into one piece</strong></li>
</ul>
<h2><strong>What it's not:</strong></h2>
<ul>
<li>A Flash, Java, Silverlight or any other "killer" - it's just another JS framework running in your browser</li>
<li>Portable - it runs in the browser, but it needs XCode+Mac to compile from Cocoa.</li>
<li>Self sufficient - it relies on device or browser for delivering video / audio / interactivity to the end user</li>
</ul>
<h2><strong>Gianduia's direct competition:</strong></h2>
<p>So if it's not the next "Flash Killer" what exactly is Gianduia's purpose? The answer is simple: Apple are just trying to <strong>fix their own loose web application toolset</strong> and to put all components under a single unified framework. In this case however they will be competing with other JS frameworks out there such as:</p>
<ul>
<li>Cappuccino (<a href="http://cappuccino.org/" target="_blank">home</a>, <a href="http://en.wikipedia.org/wiki/Cappuccino_%28application_development_framework%29">wiki</a>)</li>
<li>SproutCore (<a href="http://www.sproutcore.com/" target="_blank">home</a>, <a href="http://en.wikipedia.org/wiki/SproutCore"  target="_blank">wiki</a>)</li>
<li>JavascriptMVC (<a href="http://javascriptmvc.com/" target="_blank">home</a>, <a href="http://en.wikipedia.org/wiki/JavascriptMVC"  target="_blank">wiki</a>)</li>
</ul>
<h2><strong>Gianduia's APIs</strong></h2>
<p>At the time of writing, Giandua's main framework file is located <a href="http://concierge.apple.com/concierge/18110/scripts/common/ccweb/1-2-SNAPSHOT/Gianduia.js" target="_blank">here</a>. Depending on requirements on each application, it would call and load multiple "modules" which appear to be sort of a descriptor files of an equivalent UI element or utility class in Cocoa, just written in Javascript.</p>
<p>For those of you who want to peek under the hood and check the inner workings of the framework, below is a list of <strong>some</strong> of Gianduia's framework classes (links to <strong>Javascript files</strong>). Whitespace has been removed from JS files, but they uncompressed and still more or less readable. </p>
<p>You can see some really interesting stuff here like <code>NSPersistentStore</code> or <code>NSBindingDeclaration</code>, take a look:</p>
<p><strong>Foundation</strong></p>
<ul>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSString.js">NSString</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSArray.js">NSArray</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSDictionary.js">NSDictionary</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSDOMNode.js">NSDOMNode</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSNotificationCenter.js">NSNotificationCenter</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSHTTPRequest.js">NSHTTPRequest</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSObject.js">NSObject</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSException.js">NSException</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSImport.js">NSImport</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSKeyValueCoding.js">NSKeyValueCoding</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSKeyValueObserving.js">NSKeyValueObserving</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSKeyValueBinding.js">NSKeyValueBinding</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSPredicate.js">NSPredicate</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSIndexSet.js">NSIndexSet</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSValueTransformer.js">NSValueTransformer</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSJSON.js">NSJSON</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSExpression.js">NSExpression</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/Foundation/NSInflector.js">NSInflector</a></li>
</ul>
<p><strong>AppKit</strong></p>
<ul>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSComponent.js">NSComponent</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSResponder.js">NSResponder</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSBindingDeclaration.js">NSBindingDeclaration</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSWindow.js">NSWindow</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSAnimation.js">NSAnimation</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSCSSAnimation.js">NSCSSAnimation</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSEvent.js">NSEvent</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSImage.js">NSImage</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSDynamicString.js">NSDynamicString</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSDynamicElement.js">NSDynamicElement</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSConditional.js">NSConditional</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSPopUpButton.js">NSPopUpButton</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSRepetition.js">NSRepetition</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSRadio.js">NSRadio</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSInput.js">NSInput</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/AppKit/NSHyperlink.js">NSHyperlink</a></li>
</ul>
<p><strong>CoreData</strong></p>
<ul>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSManagedObjectContext.js">NSManagedObjectContext</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSEntityDescription.js">NSEntityDescription</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSManagedObject.js">NSManagedObject</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSManagedObjectModel.js">NSManagedObjectModel</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSPersistentStoreRequest.js">NSPersistentStoreRequest</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSPersistentStoreCoordinator.js">NSPersistentStoreCoordinator</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSPersistentStore.js">NSPersistentStore</a></li>
<li><a target="_blank" href="http://iphone-reserve.apple.com/rprcustomer/3810/scripts/common/ccweb/1-2-SNAPSHOT/CoreData/NSFetchRequest.js">NSFetchRequest</a></li>
</ul>
<h2><strong>The Unusual</strong></h2>
<p>While browsing through the new API I noticed a new syntax which probably relates to Gianduia's data binding features. The following bit comes from a <code>script type="text/declaration"</code> tag located in the head section of <a href="http://iphone-reserve.apple.com/WebObjects/RPRCustomer.woa/wo/8.">Apple iPhone reservation tool</a>.</p>
<p>Maybe someone from readers could provide more ideas on what this code does? Do you think it's a good approach?</p>
<div class="igBar"><span id="lhtml-2"><a href="#" onclick="javascript:showPlainTxt('html-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-2">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/declaration"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; skuThumbnailC : Gianduia.AppKit.NSImage {</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; src = skuRepetitionC.objectAtEnumerationIndex.url;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; } </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; skuNameC : Gianduia.AppKit.NSDynamicString {</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;value = skuRepetitionC.objectAtEnumerationIndex.name;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; }</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; selectedPlanInputC : Gianduia.AppKit.NSDynamicElement {</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; value = selectedPlanURI;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; errorMessageC : Gianduia.AppKit.NSDynamicElement {</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; elementClass=&quot;alert&quot;;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; innerText = errorMessage;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; }</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; hideWhenNoWhereAvailableC : Gianduia.AppKit.NSConditional{</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; condition = skuRepetitionC.objectAtEnumerationIndex.hideNotAvailStoreDesc;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; negate = true;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp; &nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2><strong>Impressions</strong></h2>
<p>I might be mistaking, but after playing around with the live demos and looking at the sources I think Gianduia is not meant to be written by hand rather than generated by a compiler - syntax is sort of unusual, hacky and difficult to read. </p>
<p>However even in this case Gianduia will have a slight edge over other JS frameworks due to the fact that it's developed by Apple; This means if this framework ever gets released to the wild <strong>you can expect very tight integration with XCode</strong> and ability to choose "web" as a compile target for your next Cocoa application. </p>
<p>The dark side of this is the new language lock-in trend that starts to emerge - it seems that Apple wants everyone to write their code only with Obj-C in XCode, on a Mac and compile to other platforms, but not the other way around.</p>
<p>As far as the demos go, <strong>I was not impressed</strong>. What I saw was pretty basic and static web forms and still the UI components did not seem very responsive. I would really like to experience this framework integrated in a more advanced web application to test how well it performs handling difficult tasks.</p>
<p>Gianduia seems to have implemented a dependency model which results in chain-loading of framework components. At one point during my test of <a href="http://iphone-reserve.apple.com/WebObjects/RPRCustomer.woa/wo/8.">Apple iPhone reservation tool</a> I had user interface frozen (with unresponsive inputs and no preloader) for <strong>12.7s</strong> while the dependencies were loading in the background - that's a <strong>bad user experience!</strong></p>
<h2><strong>Conclusion</strong></h2>
<p>It's shaping to be a nice extension for developers using XCode and a solid framework for building layout based HTML apps but we will have to wait and see if it's anything more than that. </p>
<p>Just don't put your bets on Gianduia killing Flash -<br />
<h3><strong>it just won't happen</strong>.</h3>
<img src="http://feeds.feedburner.com/~r/uza/~4/rayUZ14jZu4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/05/10/gianduia-vs-flash/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/05/10/gianduia-vs-flash/</feedburner:origLink></item>
		<item>
		<title>My take: HTML5 vs. Flash</title>
		<link>http://feedproxy.google.com/~r/uza/~3/fVsolWkXcog/</link>
		<comments>http://www.uza.lt/2010/04/29/my-take-html5-vs-flash/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 03:02:03 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Semantic]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=308</guid>
		<description><![CDATA[Recently the steam has built up to the level where it needs to be set free, so here is my take on the whole HTML5 vs. Flash matter: HTML5 by itself does not provide scripting or styling HTML5 is a markup language, markup as in "the collection of tags that describe the specifications of an [...]]]></description>
			<content:encoded><![CDATA[<p>Recently the steam has built up to the level where it needs to be set free, so here is my take on the whole HTML5 vs. Flash matter: </p>
<h2><strong>HTML5 by itself does not provide scripting or styling</strong></h2>
<p>HTML5 is a markup language, markup as in "the collection of tags that describe the specifications of an electronic document, as for formatting", nothing more. To build anything more useful than a bunch of static text and media you will need to rely on...</p>
<h2><strong>CSS and Javascript</strong></h2>
<p>That's right, RELY being the key word here. You might have heard (or experienced) that CSS and Javascript support across browsers is fragmented and broken due to vendor inability to talk with each other and to find a common understanding when defining web standards. </p>
<p>But how bad is it exactly? How does it look when you put it in perspective with a technology like Flash?</p>
<h3><strong>Mouse Events</strong></h3>
<p>In Flash Player's Actionscript 3 you have a rich set of mouse events that allow you to distinguish between different states interaction with interface elements. These events allow to create complex user interface elements, nested navigation items, drop-down menus and even multitouch interfaces that work flawlessly. See a full list of <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/MouseEvent.html#constantSummary" target="_blank">supported events here</a>.</p>
<p>In Javascript, you have to check with <a href="http://www.quirksmode.org/dom/events/index.html" target="_blank">this compatibility table from QuirksMode.org</a> which looks like a Christmas tree. It's sad but browser vendors have chosen to implement mouse events so differently that most of the time it's impossible to get something to work without using tons of compatibility code and sometimes it's just not possible at all (for example <a href="http://uza.lt/rightclick/" target="_blank">this will never run on Opera</a>).</p>
<h3><strong>Consistency</strong></h3>
<p>A table of currently supported HTML5 tags <a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML_5%29" target="_blank">can be found here</a> (note the dominating RED color).</p>
<p>Whereas Flash Player 10 supports consistent API through operating systems and devices and is currently deployed on <strong>97% of all internet-enabled computers worldwide</strong> (data taken from <a href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html"  target="_blank">here</a>)</p>
<h3><strong>Clipboard</strong></h3>
<p>In Actionscript 3 setting clipboard contents is as easy as calling
<div class="igBar"><span id="lactionscript-10"><a href="#" onclick="javascript:showPlainTxt('actionscript-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-10">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">System</span>.<span style="color: #0066CC;">setClipboard</span><span style="color: #66cc66;">&#40;</span>contents<span style="color: #66cc66;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p> In Javascript... well since the native clipboard functionality is only supported in Internet Explorer you will have to <strong>EMBED A FLASH FILE</strong> and use a js-to-flash bridge to set the clipboard:</p>
<div class="igBar"><span id="ljavascript-11"><a href="#" onclick="javascript:showPlainTxt('javascript-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JavaScript:</span>
<div id="javascript-11">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> copyIntoClipboard<span style="color: #66cc66;">&#40;</span>text<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> flashId = <span style="color: #3366CC;">'flashId-HKxmj5'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">/* Replace this with your clipboard.swf location */</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> clipboardSWF = <span style="color: #3366CC;">'http://appengine.bravo9.com/copy-into-clipboard/clipboard.swf'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span>!document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span>flashId<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> div = document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; div.<span style="color: #006600;">id</span> = flashId;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; document.<span style="color: #006600;">body</span>.<span style="color: #006600;">appendChild</span><span style="color: #66cc66;">&#40;</span>div<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span>flashId<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">innerHTML</span> = <span style="color: #3366CC;">''</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> content = <span style="color: #3366CC;">'&lt;embed src=&quot;'</span> + </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; clipboardSWF +</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'&quot; FlashVars=&quot;clipboard='</span> + encodeURIComponent<span style="color: #66cc66;">&#40;</span>text<span style="color: #66cc66;">&#41;</span> +</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'&quot; width=&quot;0&quot; height=&quot;0&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span>flashId<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">innerHTML</span> = content;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3><strong>Video</strong></h3>
<p>Let me quote diveintohtml5.org for this one: "There is no single combination of containers and codecs that works in all HTML5 browsers. To make your video watchable across all of these devices and platforms, you’re going to have to encode your video more than once."</p>
<p>Hey, thanks but <strong>NO THANKS</strong>.</p>
<p>I will not go into details on this topic since it was covered many times over before me but currently HTML5 video tag support is fragmented and implementations are slower than Flash due to browser's inability to leverage hardware acceleration. More information <a href="http://diveintohtml5.org/video.html" target="_blank">here</a> and <a href="http://vimeo.com/10553088"  target="_blank">here</a>. In other words, it's a complete mess.</p>
<h3><strong>Styling</strong></h3>
<p>So here's a simple example in Actionscript 3, let's draw a semi-transparent box with rounded corners and and rotate it by 7.5 degrees:</p>
<div class="igBar"><span id="lactionscript-12"><a href="#" onclick="javascript:showPlainTxt('actionscript-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-12">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">with</span><span style="color: #66cc66;">&#40;</span>shape.<span style="color: #006600;">graphics</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xB4B490,<span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">6</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;drawRoundRect<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">0</span>,<span style="color: #cc66cc;color:#800000;">0</span>, <span style="color: #cc66cc;color:#800000;">100</span>, <span style="color: #cc66cc;color:#800000;">100</span>, <span style="color: #cc66cc;color:#800000;">12</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">shape.<span style="color: #006600;">rotation</span> = <span style="color: #cc66cc;color:#800000;">7</span>.<span style="color: #cc66cc;color:#800000;">5</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Makes sense? Sure does.<br />
Now let's take a look at HTML and CSS code required to achieve <strong>exactly the same</strong> result:</p>
<div class="igBar"><span id="lhtml-13"><a href="#" onclick="javascript:showPlainTxt('html-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-13">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"box"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lcss-14"><a href="#" onclick="javascript:showPlainTxt('css-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CSS:</span>
<div id="css-14">
<div class="css">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #cc00cc;">#box <span style="color: #66cc66;">&#123;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #808080; font-style: italic;">/* Color and Transparency */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">background-color</span>: #B4B490;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">background-color</span>: rgba<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">180</span>, <span style="color: #cc66cc;color:#800000;">180</span>, <span style="color: #cc66cc;color:#800000;">144</span>, <span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">6</span><span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #808080; font-style: italic;">/* FF3+, Saf3+, Opera 10.10+, Chrome */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;filter:&nbsp; progid:DXImageTransform.Microsoft.gradient<span style="color: #66cc66;">&#40;</span>startColorStr=<span style="color: #ff0000;">'#99B4B490'</span>,EndColorStr=<span style="color: #ff0000;">'#99B4B490'</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">/* IE6,IE7 */</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;-ms-filter: <span style="color: #ff0000;">"progid:DXImageTransform.Microsoft.gradient(startColorStr='#99B4B490',EndColorStr='#99B4B490')"</span>; <span style="color: #808080; font-style: italic;">/* IE8 </span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"></li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">&nbsp; &nbsp;/* Dimensions */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">width</span>: 100px;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">height</span>: 100px;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #808080; font-style: italic;">/* Rounded Corners */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;-moz-border-radius: 12px; <span style="color: #808080; font-style: italic;">/* FF1+ */</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;-webkit-border-radius: 12px; <span style="color: #808080; font-style: italic;">/* Saf3+, Chrome */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;border-radius: 12px; <span style="color: #808080; font-style: italic;">/* Opera 10.5, IE 9 */</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color: #808080; font-style: italic;">/* Rotation */</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;-moz-transform: rotate<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">7</span>.5deg<span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #808080; font-style: italic;">/* FF3.5+ */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;-o-transform: rotate<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">7</span>.5deg<span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #808080; font-style: italic;">/* Opera 10.5 */</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;-webkit-transform: rotate<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">7</span>.5deg<span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #808080; font-style: italic;">/* Saf3.1+, Chrome */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;filter:&nbsp; progid:DXImageTransform.Microsoft.Matrix<span style="color: #66cc66;">&#40;</span>sizingMethod=<span style="color: #ff0000;">'auto expand'</span>, M11=<span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">9914448613738104</span>, M12=-<span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">13052619222005157</span>, M21=<span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">13052619222005157</span>, M22=<span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">9914448613738104</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">/* IE6,IE7 */</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;-ms-filter: <span style="color: #ff0000;">"progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.9914448613738104, M12=-0.13052619222005157, M21=0.13052619222005157, M22=0.9914448613738104)"</span>; <span style="color: #808080; font-style: italic;">/* IE8 */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;zoom: <span style="color: #cc66cc;color:#800000;">1</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>See those values next to <strong>filter</strong> and <strong>-ms-filter</strong>? HOW THE HELL should I calculate those matrix values by heart without opening my scientific calculator every time I need to adjust the rotation angle?! </p>
<p>And why do <strong>I have to repeat the same statement</strong> over and over again for each crappy browser implementation? -moz-o-webkit-ms-gimme-a-break.</p>
<p>And worst of all, why after going through all of this nonsense it still works only on 25% of all browsers?!</p>
<p><strong>[EDIT] By popular demand, here's how it looks in JS + canvas:</strong></p>
<div class="igBar"><span id="lhtml-15"><a href="#" onclick="javascript:showPlainTxt('html-15'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-15">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;">&lt;canvas <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"drawing"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"200"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"200"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></a></span>Alternate text.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span></a>/canvas&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="ljavascript-16"><a href="#" onclick="javascript:showPlainTxt('javascript-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JavaScript:</span>
<div id="javascript-16">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> drawingCanvas = document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'drawing'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span>drawingCanvas.<span style="color: #006600;">getContext</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> width = <span style="color: #CC0000;color:#800000;">100</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> height = <span style="color: #CC0000;color:#800000;">100</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> radius = <span style="color: #CC0000;color:#800000;">12</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> x, y = <span style="color: #CC0000;color:#800000;">0</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> ctx = drawingCanvas.<span style="color: #006600;">getContext</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'2d'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">fillStyle</span> = <span style="color: #3366CC;">"rgba(180,180,144,0.6)"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">beginPath</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">moveTo</span><span style="color: #66cc66;">&#40;</span>x,y+radius<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">lineTo</span><span style="color: #66cc66;">&#40;</span>x,y+height-radius<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">quadraticCurveTo</span><span style="color: #66cc66;">&#40;</span>x,y+height,x+radius,y+height<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">lineTo</span><span style="color: #66cc66;">&#40;</span>x+width-radius,y+height<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">quadraticCurveTo</span><span style="color: #66cc66;">&#40;</span>x+width,y+height,x+width,y+height-radius<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">lineTo</span><span style="color: #66cc66;">&#40;</span>x+width,y+radius<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">quadraticCurveTo</span><span style="color: #66cc66;">&#40;</span>x+width,y,x+width-radius,y<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">lineTo</span><span style="color: #66cc66;">&#40;</span>x+radius,y<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">quadraticCurveTo</span><span style="color: #66cc66;">&#40;</span>x,y,x,y+radius<span style="color: #66cc66;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">fill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ctx.<span style="color: #006600;">rotate</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;color:#800000;">7</span>.<span style="color: #CC0000;color:#800000;">5</span>*<span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">PI</span>/<span style="color: #CC0000;color:#800000;">180</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Any better? I thought so... Oh, and if you want this on IE, you have to use a compatibility library.</p>
<h3><strong>Licensing</strong></h3>
<p>This is a point that gets mentioned over and over again, so let's see: </p>
<ul>
<li>Wikipedia <a href="http://en.wikipedia.org/wiki/Canvas_element">states</a> that "On March 14, 2007, WebKit developer Dave Hyatt forwarded an email from Apple's Senior Patent Counsel, Helene Plotka Workman[3], which stated that Apple reserved all intellectual property rights relative to WHATWG’s Web Applications 1.0 Working Draft, dated March 24, 2005, Section 10.1, entitled “Graphics: The bitmap canvas” [4], but left the door open to licensing the patents should the specification be transferred to a standards body with a formal patent policy.". Today, <strong>Canvas is still a copyrighted property of Apple Inc.</strong></li>
<li>HTML, JS and CSS parser implementations of most of the browsers are closed source (with few exceptions).</li>
</ul>
<p>Now on the opposite side we have this:</p>
<ul>
<li><a target="_blank" href="http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf">SWF file format specification</a> [PDF]</li>
<li><a target="_blank" href="http://www.mozilla.org/projects/tamarin/">Tamarin Actionscript 3 JIT compiler</a></li>
<li><a target="_blank" href="http://code.google.com/p/as3corelib/">as3corelib</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS">BlazeDS</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm">Cairngorm</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/durango/Durango">Durango</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/favideo/Flash-Ajax+Video+Component">Flash-Ajax Video Component</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK">Flex SDK</a></li>
<li><a target="_blank" href="http://code.google.com/p/flexlib/">flexlib</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD">FlexPMD</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/flexunit/FlexUnit">FlexUnit</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/gil/Generic+Image+Library">Generic Image Library</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/pdfmapping/Mapping+Resources+for+PDF">Mapping Resources for PDF</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/osmf/Open+Source+Media+Framework">Open Source Media Framework</a></li>
<li><a target="_blank" href="http://stlab.adobe.com/amg/">Adobe Media Gallery</a></li>
<li><a target="_blank" href="http://stlab.adobe.com/">Adobe Source Libraries</a></li>
<li><a target="_blank" href="http://opensource.adobe.com/wiki/display/tlf/Text+Layout+Framework">Text Layout Framework</a></li>
</ul>
<p>Still not convinced?</p>
<h3><strong>What Else?</strong></h3>
<p>Finally, here's a list of cool functionality that you will miss out on if you choose HTML5, JS and CSS over Flash:</p>
<ul>
<li>Sockets</li>
<li>Video and audio streaming</li>
<li>Microphone and webcam access</li>
<li>Embedded fonts (don't get me started)</li>
<li>Multitouch</li>
<li>Native 3D transforms</li>
<li>Graphics shaders and other C++ based extensions (Alchemy)</li>
<li>DRM</li>
</ul>
<h3><strong>Conclusion</strong></h3>
<p>Summing up I would like to say that <strong>I like HTML5 *very much*</strong> for what it is - a semantic upgrade to HTML4. But please don't call it something like "Flash Player Killer" because doing so simply does not make sense. </p>
<p>Flash is a superior technology allowing for rich and true cross platform experience and it's here to stay for a long long time whether you like it or not. </p>
<p>Flame wars commence... If you have a different point of view or want to add something to the discussion, please leave a comment below. You can also send me a shout at <a href="http://twitter.com/pauliusuza" target="_blank">@pauliusuza</a> on twitter.</p>
<img src="http://feeds.feedburner.com/~r/uza/~4/fVsolWkXcog" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/04/29/my-take-html5-vs-flash/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/04/29/my-take-html5-vs-flash/</feedburner:origLink></item>
		<item>
		<title>Photoshop CS5: Adding a Smile With Puppet Warp</title>
		<link>http://feedproxy.google.com/~r/uza/~3/1nzY_zlsIPU/</link>
		<comments>http://www.uza.lt/2010/04/25/photoshop-cs5-adding-a-smile-with-puppet-warp/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 10:52:43 +0000</pubDate>
		<dc:creator>Paulius Uza</dc:creator>
				<category><![CDATA[CS5]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Puppet Warp]]></category>

		<guid isPermaLink="false">http://www.uza.lt/?p=287</guid>
		<description><![CDATA[Photoshop CS5 is has already been announced and most of us are thinking is it worth the upgrade? Well today I will show you one less-talked-about feature that we've been using in a production setting for the last month and that has been a real time saver for me - the Puppet Warp. Puppet Warp [...]]]></description>
			<content:encoded><![CDATA[<p>Photoshop CS5 is has already been announced and most of us are thinking is it worth the upgrade? Well today I will show you one less-talked-about feature that we've been using in a production setting for the last month and that has been a real time saver for me - the Puppet Warp.</p>
<p>Puppet Warp tool has a lot of cool uses like character or object posing on the scene (<a href="http://www.youtube.com/watch?v=4nAklIkMy4g">as seen in this video</a>), however what I found really useful is Puppet Warp's ability to tweak the image without any visible distortion that usually occurs when using warp, scale or smudge tools. Just to give a very quick example of what I mean, I will demonstrate how you can add a nicer smile on my portrait image I took a while ago for my Facebook profile.</p>
<p>Disclaimer: I am no way affiliated with Adobe Systems Inc. or getting "rewarded" for this article, I was just happy to discover a feature in CS5 that I really seem to like and I want to share it with you.</p>
<p>Here's the original image I took:<br />
<img src="http://www.uza.lt/wp-content/uploads/2010/04/step1.jpg" alt="Puppet Warp: Step 1" title="Puppet Warp: Step 1" width="490" height="691" class="alignleft size-full wp-image-294" /></p>
<p>Let's choose Edit -> Puppet Warp<br />
<img src="http://www.uza.lt/wp-content/uploads/2010/04/menu.jpg" alt="Puppet Warp Menu" title="menu" width="490" height="460" class="alignleft size-full wp-image-299" /></p>
<p>The Puppet Warp mesh appears over non-transparent parts of the layer, in our case it covers all the portrait:</p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/step2.jpg" alt="Puppet Warp: Step 2" title="Puppet Warp: Step 2" width="490" height="691" class="alignleft size-full wp-image-294" /></p>
<p>When we click on the image, yellow control points appear. Let's position those points on (or near) the main features we want to keep in place when modifying the image - think of them as pins on a flexible garment:</p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/step3.jpg" alt="Puppet Warp: Step 3" title="Puppet Warp: Step 3" width="490" height="691" class="alignleft size-full wp-image-294" /></p>
<p>When working with detailed images, you will want to increase the mesh density for more precise results and less visible distortion, this can be done by choosing an option from the Density menu:</p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/pointcount.jpg" alt="" title="Point Count" width="490" height="112" class="alignleft size-full wp-image-303" /></p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/step4.jpg" alt="Puppet Warp: Step 4" title="Puppet Warp: Step 4" width="490" height="691" class="alignleft size-full wp-image-294" /></p>
<p>Now let's drag the control points to tweak the image to your liking, like so:</p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/step5.jpg" alt="Puppet Warp: Step 5" title="Puppet Warp: Step 5" width="490" height="691" class="alignleft size-full wp-image-294" /></p>
<p>When done, hit Return key on the keyboard and behold the final result:</p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/step6.jpg" alt="Puppet Warp: Step 6" title="Puppet Warp: Step 6" width="490" height="691" class="alignleft size-full wp-image-294" /></p>
<p>This is a comparison of the two images side by side:</p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/final.jpg" alt="Puppet Warp: Result" title="final" width="490" height="341" class="alignleft size-full wp-image-288" /></p>
<p>And this is a close up of detail, you can clearly see that no detail or texture was lost in the process and the image still looks very natural. All of this in less than 60 seconds with the new CS5!</p>
<p><img src="http://www.uza.lt/wp-content/uploads/2010/04/ba.jpg" alt="Final Detail" title="Final Detail" width="490" height="320" class="alignleft size-full wp-image-295" /></p>
<p>Amazing, isn't it? What do you think about it? Please leave your comments in the comment section below and <a href="http://twitter.com/pauliusuza">follow me on twitter</a> for more fun stuff!</p>
<img src="http://feeds.feedburner.com/~r/uza/~4/1nzY_zlsIPU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.uza.lt/2010/04/25/photoshop-cs5-adding-a-smile-with-puppet-warp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.uza.lt/2010/04/25/photoshop-cs5-adding-a-smile-with-puppet-warp/</feedburner:origLink></item>
	</channel>
</rss>

