<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>DevelopmentArc</title>
	
	<link>http://www.developmentarc.com/site</link>
	<description>Helping clients build for the future</description>
	<pubDate>Thu, 18 Feb 2010 07:21:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Developmentarc" /><feedburner:info uri="developmentarc" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>DevelopmentArc @ 360|Flex</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/xU3X2CHFiGA/</link>
		<comments>http://www.developmentarc.com/site/2010/02/developmentarc-360flex/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 07:19:43 +0000</pubDate>
		<dc:creator>Aaron Pedersen</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[conferences]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[Conference]]></category>

		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=434</guid>
		<description><![CDATA[With a little less than a month until 360&#124;Flex I thought I would sit down and write a long over due post about the conference.  360&#124;Flex is known in the community as one of those “hard core” conferences where the expectation is to leave sessions with your Flex and Flash IQ increased by a couple [...]]]></description>
			<content:encoded><![CDATA[<p>With a little less than a month until <a href="http://www.360flex.com/" target="_blank">360|Flex</a> I thought I would sit down and write a long over due post about the conference.  360|Flex is known in the community as one of those “hard core” conferences where the expectation is to leave sessions with your Flex and Flash IQ increased by a couple digits.</p>
<p>Unfortunately until now, James and I have had to experience the conference through other people’s stories.  For some reason or another the last few years have been pretty hectic, but we made it a mission in 2010 to attend and speak at more events, with 360|Flex being the first on the list.</p>
<p><strong>Session</strong><br />
In our session “Flex 4 Component LifeCycle Best Practices” our goal is to walk folks through the three stages of the Flex lifecycle (birth, mature, death) and discuss what methods can be used to help build efficient and high performance Flex applications following that Flex component design methodology. With the reengineering of the skinning architecture in Flex 4, a few methods have been introduced and others have been more or less deprecated in importance. We will discuss these changes in detail and how you will want to change your development practices. We are extremely excited to share our year long research that began with our widely popular white paper on the Flex 3 lifecycle. Soon after the conference and session, we plan on updating the paper to Flex 4 and will share it with the community.</p>
<p><strong>Attending</strong><br />
As much of an honor it is to speak at 360|Flex what is really exciting us is attending some of the other session and diving deeper into topics we have not had the time to investigate. James and I have been debating our <a href="http://www.360flex.com/schedule/" target="_blank">schedule</a> for a few weeks now so far we have compiled a “must-see” list that we have listed below to share with everyone.</p>
<p><strong>Aaron &amp; James’ Must See!</strong></p>
<p>Going deep w/OSMF - OMG!<br />
Level 300<br />
By David Hassoun</p>
<p>RobotLegs on Top of Gaia Flash Framework<br />
Level 100<br />
By Jesse Warden</p>
<p>Building Applications using Test Driven Development (TDD)<br />
By Elad Elrom</p>
<p>Dramatic Effect of Flex Library Linkage<br />
Level 300<br />
By Yakov Fai</p>
<p>Reflex: Rethinking Component Design<br />
Level 300<br />
By Jacob and Tyler Wright</p>
<p><strong>Social Activity</strong><br />
We will be both tweeting as much as we can from the conference and sessions. Hit us up if you would like to discuss our session or any other session in more details. We love meeting new techies!</p>
<p>Aaron Pedersen - <a href="http://www.twitter.com/aaronpedersen" target="_blank">@aaronpedersen</a><br />
James Polanco - <a href="http://www.twitter.com/jamespolanco" target="_blank">@jamespolanco</a></p>
<p>Also don’t forget to follow 360|Flex for news and updates as we approach the and throughout the conference.</p>
<p>360|Flex - <a href="http://www.twitter.com/360flex" target="_blank">@360flex</a></p>
<p><strong>Wrap Up</strong><br />
If you are thinking about attending 360|Flex you should book your tickets soon. Last time the conference was held in San Jose it was sold out. This year the conference has parties every night giving you a chance to mingle with the community at large. There are over 40 sessions, 2 panels, and your ticket includes hands on training sessions for all levels on the Sunday before the conference begins. Also, if you are new to Flex, you can take an all day Flex 101 course (one of the hands on training sessions) and be ready for regular sessions on Monday.</p>
<p>Speakers include a wide assortment of Adobe engineers and communities leaders. For a full list check out the following site <a href="http://www.360flex.com/blog/category/the-speakers" target="_blank">http://www.360flex.com/blog/category/the-speakers</a>.</p>
<p><a href="http://360flex-developmentarc.eventbrite.com" target="_blank">Register here</a>. We hope to see you there!</p>
<p><!--EndFragment--></p>
<p><!--EndFragment--></p>
<p><!--EndFragment--></p>
<p><!--EndFragment--></p>
<p><!--EndFragment--></p>
<p><!--EndFragment--></p>
<p><!--EndFragment--></p>
<p><!--EndFragment--></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=xU3X2CHFiGA:qVXBvMF7FMU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=xU3X2CHFiGA:qVXBvMF7FMU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=xU3X2CHFiGA:qVXBvMF7FMU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=xU3X2CHFiGA:qVXBvMF7FMU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=xU3X2CHFiGA:qVXBvMF7FMU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=xU3X2CHFiGA:qVXBvMF7FMU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=xU3X2CHFiGA:qVXBvMF7FMU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=xU3X2CHFiGA:qVXBvMF7FMU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=xU3X2CHFiGA:qVXBvMF7FMU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/xU3X2CHFiGA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2010/02/developmentarc-360flex/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2010/02/developmentarc-360flex/</feedburner:origLink></item>
		<item>
		<title>Merging Fonts When Embedding</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/L96dViG9lEc/</link>
		<comments>http://www.developmentarc.com/site/2009/11/merging-fonts-when-embedding/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 17:27:13 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[ActionScript3]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[knowledge center]]></category>

		<category><![CDATA[bold]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[embed fonts]]></category>

		<category><![CDATA[flex 4]]></category>

		<category><![CDATA[fontface]]></category>

		<category><![CDATA[fontfamily]]></category>

		<category><![CDATA[fonts]]></category>

		<category><![CDATA[fontstyle]]></category>

		<category><![CDATA[italic]]></category>

		<category><![CDATA[text flow]]></category>

		<category><![CDATA[tlf]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=430</guid>
		<description><![CDATA[I found an interesting trick with embedding fonts today while working with the Text Flow engine in Flex 4.  What I found out is that you can embed multiple fonts under the same font family name, but set the properties such as font weight or font style to different settings based on the font source [...]]]></description>
			<content:encoded><![CDATA[<p>I found an interesting trick with embedding fonts today while working with the Text Flow engine in Flex 4.  What I found out is that you can embed multiple fonts under the same font family name, but set the properties such as font weight or font style to different settings based on the font source you are using.  This may be an obvious thing to a lot of people, and the property name &#8216;font-family&#8217; makes a lot more sense now, but for me it was a real &#8216;ah-ha&#8217; moment.  By the way, this isn&#8217;t just a Flex 4 thing, you can do this with Flex 3 and probably AS3 only projects (haven&#8217;t tried that yet) but the issue became more apparent in Flex 4&#8217;s new TLF enabled components.</p>
<p>The problem came about because we have a set of fonts that provide each style type in a unique OTF file, i.e. Font-Regular.otf, Font-Bold.otf, Font-Italic.otf, and Font-BoldItalic.otf.  In the past, we just embedded this with unique font-family ids (font-family: &#8220;Font-Regular&#8221;) and then just bound them via CSS.  This approach becomes a significant problem when starting to work with TLF&#8217;s selection management and Text Format.  We are building a simple Rich Text Editor in Flex 4 (since its not available yet in Beta 2) to allow a user to set their text to bold, italic or underline.  Simple enough, right?</p>
<p>Well, its not so simple when you have your font styles spread across font identifiers. The way we started to handle this is that when the user selected some text and applied Bold, we would set the text format&#8217;s font family for the selection to &#8220;Font-Bold&#8221;. To enable the ability to toggle the style, we would ask for the selection ranges format, look to see what the font family is and then toggle it to either bold or normal.  Now, let&#8217;s say that the user selects a section of text that mixes bold and normal text.  When you get the text format back, the font family property is set to undefined, letting you know that you have a mixed set.</p>
<p>In the bold/normal case this is easy to solve, but let&#8217;s say that you have bold, normal and italic text in the selection.  Because the property is undefined we can&#8217;t determine this nor can we just apply the new style across the entire selection because you would remove the italic (in the case of applying bold).  At this point I was getting kind of upset because the solution wasn&#8217;t sounding pretty.  We were looking at having to loop through the selection, grabbing the leafs and then looking at the format to determine the correct selection.  I was going to punt on it as a bug for now and move on.</p>
<p>This morning, while making coffee I thought about the fact that the key for the CSS font embed is font-family, and that when using @font-face that you can actually set things such as font-weight.  What I found out is that you can embed different sources under the same name as long as they have different style properties:</p>
<pre>@font-face {</pre>
<pre>    src: url("./assets/fonts/Font-Regular.otf");</pre>
<pre>    font-family: MyFont;</pre>
<pre>}</pre>
<pre>
@font-face {</pre>
<pre>    src: url("./assets/fonts/Font-Bold.otf");</pre>
<pre>    font-family: MyFont;</pre>
<pre>    font-weight: bold;</pre>
<pre>}</pre>
<pre>
@font-face {</pre>
<pre>    src: url("./assets/fonts/Clean UI/Font-Italic.otf");</pre>
<pre>    font-family: MyFont;</pre>
<pre>    font-style: italic;</pre>
<pre>}</pre>
<pre>
@font-face {</pre>
<pre>    src: url("./assets/fonts/Font-BoldItalic.otf");</pre>
<pre>    font-family: MyFont;</pre>
<pre>    font-weight: bold;</pre>
<pre>    font-style: italic;</pre>
<pre>}</pre>
<p>Now I can treat the font as the same family and then toggle the style properties, such as font-weight or font-style without having any font conflict.  This fixes the Text Format issue and also allows for a much cleaner/consistent CSS file.  I am sure this is explained somewhere (probably in the documents, clear as day), but I never knew that you could do this&#8230; hope it helps!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=L96dViG9lEc:hVm9Qb4y_-0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=L96dViG9lEc:hVm9Qb4y_-0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=L96dViG9lEc:hVm9Qb4y_-0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=L96dViG9lEc:hVm9Qb4y_-0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=L96dViG9lEc:hVm9Qb4y_-0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=L96dViG9lEc:hVm9Qb4y_-0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=L96dViG9lEc:hVm9Qb4y_-0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=L96dViG9lEc:hVm9Qb4y_-0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=L96dViG9lEc:hVm9Qb4y_-0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/L96dViG9lEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/11/merging-fonts-when-embedding/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/11/merging-fonts-when-embedding/</feedburner:origLink></item>
		<item>
		<title>Flash Player Internals 10.1 Recap (part four)</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/XppgwD42tME/</link>
		<comments>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-four/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 18:26:28 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
		
		<category><![CDATA[conferences]]></category>

		<category><![CDATA[knowledge center]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[adobemax]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[flashplayer]]></category>

		<category><![CDATA[max2009]]></category>

		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=407</guid>
		<description><![CDATA[In part one of the Flash Player Internals recap we covered how the player is built, in part two we talked about how the player infrastructure works, in part three we examined how ActionScript and the Virtual Machine (VM) are improving in Flash Player 10.1.  Now, in the final segment (looking at my notes this [...]]]></description>
			<content:encoded><![CDATA[<p>In part one of the Flash Player Internals recap we covered <a title="Read part one of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-one/" target="_self">how the player is built</a>, in part two we talked about how the <a title="Read part two of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-two/" target="_self">player infrastructure works</a>, in part three we examined how <a title="Read part three of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-three/" target="_self">ActionScript and the Virtual Machine (VM) are improvin</a><a title="Read part three of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-three/" target="_self">g</a> in Flash Player 10.1.  Now, in the final segment (looking at my notes this will be the longest segment) we will look at how the Flash Player rendering system is being improved and how you can leverage it for multiple devices.</p>
<p><strong>Shake Your Movie-maker</strong></p>
<p>One of the biggest changes in player 10.1 is that all video will now be GPU decoded.  This is huge for you video buffs out there because GPU decoding is sick fast and allows lower power devices, like netbooks, to play 1080p video smoothly and efficiently.  In the current player, video is decoded using a software based decoder (except in fullscreen, when GPU may be used, but not guaranteed) which is fine when you are on a big 8 core beast, but little machines just can&#8217;t handle the data.</p>
<p>Now, with a change this big there has to be a few caveats.  Well, there is.  First, your GPU has to support H.264 decoding in the chipset.  If your GPU (ex: video card) doesn&#8217;t support that, then you are out of luck and the Player will fall back to software decoding.  Next, your GPU and GPU drivers have to be certified for the Player to use it.  If you have an older driver that is not certified it won&#8217;t matter if your chipset supports H.264 or not, the Player won&#8217;t leverage it.</p>
<p>Having the chipset/driver pair white-listed for the Player means that Adobe has to work closely with the manufactures to verify the certification process.  Adobe has partnered with all the major manufactures for this process, but this means that we still have a few years before everyone can leverage GPU acceleration.  The good news is that mobile devices turn over faster, and pretty much all of the newest devices meet the Player&#8217;s requirements today.</p>
<p>Another issue is that existing video may need to be re-encoded to allow for GPU acceleration.  This issue is created because the H.264 codec version that is used to encode the video must be supported by the GPU/driver combination.  Lee recommends that you use H.264 main or baseline codecs because this will guarantee that all GPUs that meet the certification process will be able to render your video.  If your videos were not encoded with main or baseline, then you may have to re-encode the video for GPU support.</p>
<p>So, how can you tell if the user can support GPU rendering or not?  At the moment, you can&#8217;t.  The Player team is looking at this and they want it for 10.1 but there is a chance that this will not be exposed for the 10.1 release.  GPU detection is coming, they will support it, but its up in the air for when the Player will enable this.</p>
<p>Finally, GPU support will be enabled for all wmodes.  For those of you that where in attendance for the 2008 Flash Player Internals session, Jim and Lee discussed that only one wmode may be supported in the future.  Well, Lee lost the argument and all browser wmodes will support GPU rendering (as long as you meet the previously discussed requirements).</p>
<p><strong>Picture This</strong></p>
<p>There has been a lot of work done in 10.1 for how the player handles images.  Images take up a LOT of memory, and updating how images are managed was one of the keys to getting the memory footprint of applications down, without having the developer change code.  For example, the player now handles image instances much better, and allows image reuse without having to copy them. This is an issue, because if you are trying to show the same image multiple times (skins, etc.) the current player would copy the instance for each one on screen.  Now, Player 10.1 can leverage the same instance in memory for rendering.  Hot!</p>
<p>The Player now allows you, the developer, to determine when an image is decompressed.  Currently, when the Player loads a JPEG, it is decompressed right there and then.  This becomes an issue because the decompressed image takes up significantly more memory, even if you are not using it yet.  This becomes a serious challenge when you are trying to pre-load/cache images but aren&#8217;t ready to show them yet.  In Player 10.1 you will have the ability to tell the Player to load the JPEG, but not to decompress it.  This allows for a much better memory management experience within your applications. Lee also mentioned that images that are not being used will now be thrown away.  It sounds like the Player would hold on to unused images longer then needed and this is probably one of the many GC tuning issues that we talked about in part three.</p>
<p>For you 3D junkies out there, Player 10.1 supports <a title="Learn about Mip-Mapping" href="http://en.wikipedia.org/wiki/Mip-mapping" target="_blank">direct mip-mapping</a>.  I am not a 3D guru by any stretch of the imagination, most of my 3D experience was back with Director 8 and 3D Studio Max.  So, here are my notes from what Lee said, and if you have a better understanding of mip-mapping feel free to chime in.  Lee stated that unused memory is now managed when using mip-mapping, it is extremely efficient with 16-bit images and now it only decodes/renders what is seen, which makes a lot of sense when your read the Wikipedia article on mip-mapping.</p>
<p><strong>Vectorize Me!</strong></p>
<p>Player 10.1 will support GPU vector rendering on mobile platforms.  This new engine fully replaces the software rendering of vector graphics and moves the process over the GPU.  The issue is that this only works well when the GPU is faster then the CPU.  In most desktop environments, this is never the case so this feature is really a mobile only solution.  The reason this is great for mobile is that in today&#8217;s devices the GPU is significantly faster then the CPU for rendering out Vector graphics.</p>
<p><strong>Why So Slow?</strong></p>
<p>Lee had a few recommendations about improving general performance in Flash Player based applications.  First, use ActionScript 3 and strong type everything.  Using AS2, Generic objects, marking everything * and/or Dynamic based Classes do not perform nearly as well as strong typing and sealed Classes.  Use the AVM2 to your advantage and take the time to type.</p>
<p>Another tip is to avoid using intervals (timers) when ever possible and don&#8217;t rush to setting high frame rates.  One of the oldest tricks in the Flash book is to crank up your frame rate to &#8220;11&#8243; (i.e. 100+ frames per second).  This strong arming technique used to work but now the AVM and the way it processes frame intervals won&#8217;t gain you the same benefits as before, in fact in may actually hurt performance.  Really take the time to <a title="No really, this is important information" href="http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/" target="_blank">understand the elastic racetrack concept</a> and build your application with this in mind.</p>
<p><strong>You Want Me To Display What?!</strong></p>
<p>When building mobile/handheld based applications, understanding the display list is critical.  As developers, especially Flex developers, we get a little nest happy.  HBoxes, within VBoxes, within Canvases, etc.  This becomes a HUGE problem with mobile devices.  Everytime the user interacts with the app the display list has to be traversed and this just kills the CPU.  To prevent this, try to keep the display list as flat and as small as possible.  If you don&#8217;t have to nest it, don&#8217;t, if you can render it as one Sprite, do!  Keep your numbers down and this will make your app perform much better.</p>
<p>What this all boils down to is that the utopia of one application on multiple devices is really not tangible.  When building an app, you have to understand the target platform/device you are building to.  What is the target devices resolution, pixel depth, GPU speed, CPU speed, memory limitations and capabilities.  When building mobile applications, what is the cause of any performance issues? Is your display list too deep, are you rendering video correctly or vectors?  Is your content truly optimized for your device?</p>
<p>Flash Player 10.1 is giving us a lot of great tools and features to allow us to apply our skills to new and uncharted realms, but with any tool we have to understand what it is good for and how we should use it.  I am really excited to see what doors 10.1 opens for developers but I can already foresee some of the challenges we will face.  I think that is why I really enjoy Lee&#8217;s sessions because he helps layout a lot of the new features of the player but he also points out trouble spots that these new abilities can create, before you may stumble upon them yourself.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=XppgwD42tME:82pzZ5dBKlw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=XppgwD42tME:82pzZ5dBKlw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=XppgwD42tME:82pzZ5dBKlw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=XppgwD42tME:82pzZ5dBKlw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=XppgwD42tME:82pzZ5dBKlw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=XppgwD42tME:82pzZ5dBKlw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=XppgwD42tME:82pzZ5dBKlw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=XppgwD42tME:82pzZ5dBKlw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=XppgwD42tME:82pzZ5dBKlw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/XppgwD42tME" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-four/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-four/</feedburner:origLink></item>
		<item>
		<title>Flash Player Internals 10.1 Recap (part three)</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/kerOqMqRcEU/</link>
		<comments>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-three/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 21:47:55 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
		
		<category><![CDATA[conferences]]></category>

		<category><![CDATA[knowledge center]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[adobemax]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[flashplayer]]></category>

		<category><![CDATA[max2009]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=404</guid>
		<description><![CDATA[In part one of the Flash Player Internals recap we covered how the player is built, for part two we talked about how the player infrastructure works.  In part three, we will examine how ActionScript and the Virtual Machine (VM) are improving in Flash Player 10.1.
What&#8217;s New, Player-cat?
First off, Lee announced that the ActionScript VM [...]]]></description>
			<content:encoded><![CDATA[<p>In part one of the Flash Player Internals recap we covered <a title="Read part one of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-one/" target="_self">how the player is built</a>, for part two we talked about how the <a title="Read part two of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-two/" target="_self">player infrastructure works</a>.  In part three, we will examine how ActionScript and the Virtual Machine (VM) are improving in Flash Player 10.1.</p>
<p><strong>What&#8217;s New, Player-cat?</strong></p>
<p>First off, Lee announced that the ActionScript VM has been updated to use the newest version of <a href="https://developer.mozilla.org/En/Nanojit">nanojit</a>, which is the same VM backend that is used by Firefox 3.5.  This is an important update not only for performance, but because it supports many different processors.  Processor support is critical when you are looking to run the VM on as many devices and platforms as possible and nanojit helps the Player team do this.</p>
<p>The Player now has a much improved internal String class.  Strings have always been a bit of a bottle neck in Flash and the player team has updated the new class to allow better caching, faster string comparison, and most importantly lower memory usage.  This kind of low level update is great because it improves how our applications run without having to change a line of code.  Of course, you need to republish existing applications for 10.1 when it comes out (recall how the <a title="Don't break the web!" href="http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/" target="_blank">player versions SWFs</a>), but the gains should be worth it.</p>
<p>On the memory front, the Player team has spent a lot of time focusing on how to use less of it more efficiently.  The first step they took is to have the VM take up less of a memory footprint.  Lee didn&#8217;t get into any details but I would assume nanojit helped with this.  The other area they looked at was Garbage Collection (GC) and how it could be tuned for mobile devices.  What they have found is that memory usage has dropped anywhere from 10-50% for existing applications.  The GC tuning wasn&#8217;t the sole update for this huge improvement, we will look at some other updates in part four, but this was a big one.</p>
<p><strong>Garbage in Garbage Out</strong></p>
<p>Anyone that has worked extensively with the Flash Player, starting with Player 9, has eventually run up against the Player&#8217;s Garbage Collection (GC) process.  GC is another one of those community hot topics, one that I don&#8217;t feel like exploring at the moment.  If you haven&#8217;t explored GC in the Flash Player yet, you really, really should. Grant Skinner has an excellent article about <a title="Learn about Garbage Collection" href="http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html" target="_blank">how the GC works over on Adobe&#8217;s ADC</a> site, it is very much worth your time to read.</p>
<p>The big thing about GC that Lee hit home was that, GC is <em>NOT</em> memory management.  This seems to be a confusion point for a lot of developers and when their app is all bloated with excess memory usage, they point their finger at the GC saying it is the cause.  The reality is, that most memory issues are developer created.  If you don&#8217;t take the time to clean up after yourself, i.e. remove event-listeners, strong references, etc. then there is nothing the GC can do to help you.</p>
<p>The key thing about memory management in Flash is to think about it from the very beginning.  The development team that built the New York Times AIR-based reader implemented an <em>IDisposable</em> interface that allowed for self-cleaning of objects before throwing them away.  Aaron and I used a similar approach called <em>IRecyclable</em> for the Scion 2007 redesign.  The idea is that you create a method on your object called <em>dispose()</em> that removes/nulls out all internal references within the class.  If Class being disposed haves children objects that implement the interface, the class&#8217; dispose method call <em>dispose()</em> on the children.  By having this kind of system, you can make sure that your code is self-cleaning at runtime.</p>
<p>Another tip that Lee threw out was using prime numbers when leveraging the Flex Builder profiler.  Create 7 instances of something and then look for the number 21 in your instance counts after the app has been running for a bit.  The theory is that by using prime numbers as an instantiation number, you can find hanging instances faster by looking for multiples of that number.  In the 7/21 case this is caused because you have three instance of the first 7 you generated, which may be a bad thing, that is up to your code and how many instances you expect.</p>
<p><strong>Tada! It&#8217;s Alchemy</strong></p>
<p>If performance matters, and we mean really matters, then Lee recommends investing time in learning both <a title="Adobe Alchemy" href="http://labs.adobe.com/technologies/alchemy/" target="_blank">Alchemy</a> and C/C++.  For those of you not familiar with Alchemy, it is an Adobe Labs tool that converts C/C++ based libraries to AVM2 byte-code.  This means that you can execute your C/C++ code from within in your Flash application and it is incredibly fast.  Lee talked briefly about how it uses a special memory system based on byte arrays that make the code execute quickly and lightly within the Player. At DevelopmentArc, we haven&#8217;t had the chance to really dig into Alchemy yet, but the examples are pretty stunning.</p>
<p>The other technology to leverage for pure performance is <a title="Adobe PixelBender" href="http://labs.adobe.com/downloads/pixelbender.html" target="_blank">PixelBender</a> and the Hydra language.  PixelBender is a new engine within the player that is designed for fast execution of image/math based data.  Its important to note that PixelBender is not supported on a lot of mobile devices (at least not yet) so this is really more of a desktop/browser feature, but if speed is your thing, then you should look into it.</p>
<p>That&#8217;s all for part 3, in the final section we look how the Flash video and rendering system is being updated.</p>
<p>[ Read <a title="Read part four of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-four/" target="_self">Part 4: Flash Player Internals 10.1</a> ]</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=kerOqMqRcEU:4EUmLjsAB54:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=kerOqMqRcEU:4EUmLjsAB54:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=kerOqMqRcEU:4EUmLjsAB54:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=kerOqMqRcEU:4EUmLjsAB54:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=kerOqMqRcEU:4EUmLjsAB54:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=kerOqMqRcEU:4EUmLjsAB54:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=kerOqMqRcEU:4EUmLjsAB54:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=kerOqMqRcEU:4EUmLjsAB54:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=kerOqMqRcEU:4EUmLjsAB54:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/kerOqMqRcEU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-three/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-three/</feedburner:origLink></item>
		<item>
		<title>Flash Player Internals 10.1 Recap (part two)</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/h5B95Sn1oak/</link>
		<comments>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-two/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 19:25:15 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
		
		<category><![CDATA[conferences]]></category>

		<category><![CDATA[knowledge center]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[adobemax]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[flashplayer]]></category>

		<category><![CDATA[max2009]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=401</guid>
		<description><![CDATA[In the first part of our series we discussed how the player code base is being unified and how that will impact future development on the Flash platform.  In part two, we will dive into the infrastructure of the Flash Player and how this affects us as developers.
Understanding The Execution Model
The execution model is all [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a title="Read part one of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-one/" target="_self">first part of our series</a> we discussed how the player code base is being unified and how that will impact future development on the Flash platform.  In part two, we will dive into the infrastructure of the Flash Player and how this affects us as developers.</p>
<p><strong>Understanding The Execution Model</strong></p>
<p>The execution model is all about how the Flash player performs its actions every cycle (i.e. frame).  The first thing is that the Flash Player is actually extremely multi-threaded under the hood, its just not exposed to developers.  This means that conceptually we have to look at the player as single-threaded.  There is a huge debate about the benefits/limitations of this concept, one that I am not going to even try to comment on in this post.  For now, this is the way the player works&#8230; &#8217;nuff said.</p>
<p>Lee&#8217;s explanation of the execution model is pretty much a recap of what has been said in the past, so <a title="2007 Recap goodness" href="http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/" target="_blank">read up on the 2007 presentation here</a> and also check out how <a title="Learn it, love it, live it." href="http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/" target="_blank">the elastic racetrack model works</a>.</p>
<p><strong>Timing Priorities</strong></p>
<p>Now that you understand frames, render rates, and the execution model (you did read all those links above right?) there is priority in the Flash Player on what gets executed first.  The king of execution is sound, if you are playing sound the Flash Player will spend as much energy (i.e. CPU cycles) to meet the audio rate demands.  If the player can execute the audio rate properly, then the focus moves on to video.  The player will attempt to get as many frames per second as the video requires.  Once the video is achieved, then the remaining cycles get fed to animation and logic.</p>
<p>There is actually some interesting reasons on why this priority order is defined.  Once again, <a title="Chris' Blog..." href="http://chrisgriffith.wordpress.com/" target="_blank">Chris Giffith</a> provided some great insight into this at <a title="San Diego Flash User Group" href="http://www.sdfug.org/" target="_blank">SDFUG</a>.  Psychologically, audio is more important to us then video.  Back in the day of over-the-air Television, when the reception was bad as long as the audio was clear we could deal with mostly crummy images. But, once the audio went out people would change the channel.  Well, this applies today with the Flash Player.  We can handle a few video frames dropping but if the audio cuts out the experience is pretty much over.  To prevent this from occurring the player has defined this timing order.</p>
<p>Understanding this timing order is important because it can effect how an application is implemented.  If you want to run high quality audio/video while attempting to perform serious time-sensitive logic, this is more then likely going to be a challenge.  Moving the video quality down, or adjusting the logic system may be required to achieve the best experience for your user.  Understanding what gets priority helps you make a more informed decision when trying to implement or troubleshoot these kinds of applications.</p>
<p><strong>Versioning SWFs (not the Player)</strong></p>
<p>You can read up all about versioning in the <a title="Recap of SWF versioning" href="http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/" target="_blank">first post from the 2007 series</a>, but here is the short and sweet of it:  versioning of a SWF is virtual and can affect how it is executed in the player.  Every version of the Player, has an implementation model of all the previous versions of the Player.  So, if you made a SWF back when Player 6 was out, and try to run it in Player 10.1, the SWF will behave as it did back with Player 6, bugs and all (critical bugs in the player are fixed). That means, if Player 9 fixes a bug that you want in your old SWF, you must recompile the SWF to the new version to take advantage of that, this is all done so not to &#8220;break the web&#8221;.</p>
<p><strong>What&#8217;s New in Player 10.1&#8217;s Infrastructure?</strong></p>
<p>First off, Out of Memory is now handled gracefully.  In past versions, if you ran out of memory the Player just crashed.  Not good, especially when you consider out of memory is potentially going to happen a lot more on mobile devices</p>
<p>The other new infrastructure feature that Lee talked about was managing multiple instances of the Player.  One of the challenges of limited CPU and memory availability on devices is having multiple instances of the Player running.  Even if the apps running are the most well thought out, efficient programs; running multiple instances, such as how the Palm Pre allows multiple apps windows at once, will quickly kill the device.  To prevent this the player team is looking at having non-browser players pause other instances of the player when not in focus, or have the other players &#8220;downclock&#8221; to lower framerates automatically.</p>
<p>What this would do is, as you spawn new instances of the player and they gain focus, the other instances would be aware and then either stop execution or lower their framerate to minimize CPU usage.  The issue the Player team is facing is that this kind of Player &#8220;magic&#8221; can have all kinds of unwanted repercussions.  For example, Local Connection between the two instances more or less breaks.  If you build an app that communicates with another app on a moblie device and the Players pauses or downclocks this can ruin your experience, which is not a desired effect. Because of these potential issues, this feature is still in development and may not be complete or even part of 10.1 at launch.</p>
<p><em>Bonus round</em>: global error handling.  Lee didn&#8217;t mention this, but it was brought up in one of the keynotes about player 10.1.  You can now place a try/catch at the top of your application to catch all those tricky errors.  This is a huge new feature for developers.  The rouge root error has always been the bane of the Flash Developer&#8217;s world since the new AVM2 added them.  I have yet to see an example of how this works, but as soon as we do we will post examples on DevelopmentArc.</p>
<p>That&#8217;s all for part 2,  in part 3 we examine how the ActionScript Virtual Machine is being updated and in the final section we look how the Flash video and rendering system is being updated.</p>
<p>[ Read <a title="Read part three of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-three/" target="_self">Part 3: Flash Player Internals 10.1</a> ]<br />
[ Read <a title="Read part four of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-four/" target="_self">Part 4: Flash Player Internals 10.1</a> ]</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=h5B95Sn1oak:5uac9Q8dk2A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=h5B95Sn1oak:5uac9Q8dk2A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=h5B95Sn1oak:5uac9Q8dk2A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=h5B95Sn1oak:5uac9Q8dk2A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=h5B95Sn1oak:5uac9Q8dk2A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=h5B95Sn1oak:5uac9Q8dk2A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=h5B95Sn1oak:5uac9Q8dk2A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=h5B95Sn1oak:5uac9Q8dk2A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=h5B95Sn1oak:5uac9Q8dk2A:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/h5B95Sn1oak" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-two/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-two/</feedburner:origLink></item>
		<item>
		<title>Flash Player Internals 10.1 Recap (part one)</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/0zVESkKe_r0/</link>
		<comments>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-one/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 03:32:36 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
		
		<category><![CDATA[conferences]]></category>

		<category><![CDATA[knowledge center]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[adobemax]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[flashplayer]]></category>

		<category><![CDATA[max2009]]></category>

		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=398</guid>
		<description><![CDATA[For the last three years I have attended the Adobe MAX session put on by Lee Thomason and Jim Corbett called &#8220;Flash Player Internals&#8221;.  This is by far my favorite MAX session, because its extremely advanced, fast paced and they cover as much of the player&#8217;s architecture as possible.  This year at the Adobe MAX [...]]]></description>
			<content:encoded><![CDATA[<p>For the last three years I have attended the Adobe MAX session put on by Lee Thomason and Jim Corbett called &#8220;Flash Player Internals&#8221;.  This is by far my favorite MAX session, because its extremely advanced, fast paced and they cover as much of the player&#8217;s architecture as possible.  This year at the Adobe MAX 2009 conference, Jim was not able to join Lee for the session.  Its unfortunate because Jim and Lee&#8217;s interplay is half the fun, but Lee is a great speaker and he handled covering the entire session like pro.</p>
<p>For the 2007 session, I wrote a huge recap article because they covered the first version of the player to support ActionScript 3.  This player changed how the virtual machine (VM) worked and they showed all kinds of tips and tricks based on the VM&#8217;s architecture. You can read my previous posts over at my personal blog,<a title="I don't update it like I used to..." href="http://blog.vivisectingmedia.com/" target="_blank"> VivisectingMedia</a>. The <a title="Read the 2007 Recap" href="http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/" target="_blank">write-up is a multi-part series</a> that starts off covering the player teams motto about not breaking the web.  I skipped writing about 2008, mainly because we where just too busy starting DevelopmentArc, prepping for MAX Europe and the impeding holidays.</p>
<p>Now that MAX 2009 is all wrapped up its time to write up a multi-part series that recaps all the new topics that Lee delved into.  This round, Lee looked at all the upcoming changes in Flash Player 10.1 and I feel taking the time to research and write the posts are worth the effort.  You can watch <a title="Watch the session..." href="http://tv.adobe.com/watch/max-2009-develop/flash-player-internals/" target="_blank">Lee&#8217;s session over at the MAX video site</a> and if you have any questions or comments please send them our way.</p>
<p><strong>Building Flash Player</strong></p>
<p>In the past, the Flash Player was forked for different platforms.  Actually, forked isn&#8217;t really correct, it was two very different players built by different teams, that both shared a common root back in the AS2 days.  The FlashLite team (flash for mobile) was a different department within the company and had unique goals, targets, features and deadlines.  I am sure this caused a lot of tension and challenges for both player teams and due to this (and other goals) Adobe has merged the teams into one entity.  This integration means that with the upcoming release of version 10.1 the code base will now be unified.  As Lee said, &#8220;One Build to Rule Them All!&#8221;.</p>
<p>Lee did mention that around 20% of the code base is still platform specific, i.e. targeting Palm, ActiveX, OS X, Netscape, etc.  There are too many differences on each platform for them to have a 100% unified code base, but this also means that 80% of the code is shared across all platforms.</p>
<p><strong>One But Many</strong></p>
<p>Having a single code base for all target platforms will help Adobe unify their player strategy for mobile, browser, device and desktop development.  Yet, this introduces some new challenges for both the player team and the development community that deploys applications using the Flash Player.</p>
<p>The first big challenge is that we are seeing a huge (and rapidly growing) gap between performance (CPU) and memory availability per platform.  As Lee said, the processing power of an 8 core system vs. the Palm Pre processor is pretty huge. Not only that, but browser/desktop developers have been pretty spoiled when it comes to available memory.  Having multiple available gigabytes of RAM on one platform (i.e. browser) vs. 20 megabytes (i.e. hand-held device) can radically affect how you build an application.  <em>Note</em>:  we are not saying that memory usage isn&#8217;t an issue on the browser, its just less of an issue when you compare devices.</p>
<p>The next issue that player unification faces is screen size and pixel density.  As applications start to cross the multi-device bridge, understanding how the screen lays out and is used becomes more important.  Lee didn&#8217;t talk about pixel density directly, but <a title="Chris' Blog..." href="http://chrisgriffith.wordpress.com/" target="_blank">Chris Giffith</a> chimed in at the last <a title="San Diego User Group" href="http://www.sdfug.org/" target="_blank">SDFUG meeting</a> with some interesting side notes.</p>
<p>An LCD monitor pixel density (i.e. pixels per sq. inch) is significantly less then hand-held devices.  This means that a 40 pixel button on your LCD looks great, but becomes too small to use on a Pre.  Pixel density also differs across devices with the same resolution. The iPhone 3Gs has a 3.5 inch, 320&#215;480 resolution, and a 163 pixels per square inch (PPI) screen. The Palm Pre has a 3.1 inch, 320&#215;480 resolution with a 186 PPI screen. If we went solely on resolution, they look the same from a Player perspective so we may design a UI that works well on the iPhone but fails on the Pre due to the density difference.</p>
<p>Another challenge is user interactions.  Does the platform support a mouse and a keyboard?  Does it support multi-touch?  The player has to understand these different kinds of user inputs and we as developers have to understand how it impacts our applications.  A finger is not a single pixel accurate device, we have to understand that when doing development.  The player has to expose the right information to us, from the lowest level granular data to more high-level user actions such as swipe or pinch.</p>
<p>The final major challenge the unification brings to the table is that user&#8217;s expectations change base on the device being used.  Performance and usability change based upon whether your user is using a mobile phone vs. a browser.  On a phone, your app could be closed in 10ms because a call is coming in.  If the player doesn&#8217;t support this then its impacting the user&#8217;s expectations and needs for the device.<br />
<strong><br />
The Player is Not the Silver Bullet</strong></p>
<p>What this all leads to is, the Player cannot solve all of these problems.  The team is trying to provide as many of the solutions as possible, but the reality is, as developers we have to really understand our delivery platforms and understand that what works for one user/device combination will not work for another. As we start moving over to more and more radically different platforms, we must develop and design applications with all these consideration in mind.</p>
<p>That&#8217;s all for part 1, in part 2 of the series we look at the execution model &amp; player infrastructure, in part 3 we examine how the ActionScript Virtual Machine is being updated and in the final section we look how the Flash video and rendering system is being updated..</p>
<p>[ Read <a title="Part 2 of the series" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-two/" target="_self">Part 2: Flash Player Internals 10.1</a> ]<br />
[ Read <a title="Read part three of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-three/" target="_self">Part 3: Flash Player Internals 10.1</a> ]<br />
[ Read <a title="Read part four of Flash Player Internals 10.1" href="http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-four/" target="_self">Part 4: Flash Player Internals 10.1</a> ]</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=0zVESkKe_r0:gtSi7f-Ln3w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=0zVESkKe_r0:gtSi7f-Ln3w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=0zVESkKe_r0:gtSi7f-Ln3w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=0zVESkKe_r0:gtSi7f-Ln3w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=0zVESkKe_r0:gtSi7f-Ln3w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=0zVESkKe_r0:gtSi7f-Ln3w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=0zVESkKe_r0:gtSi7f-Ln3w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=0zVESkKe_r0:gtSi7f-Ln3w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=0zVESkKe_r0:gtSi7f-Ln3w:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/0zVESkKe_r0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-one/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/10/flash-player-internals-101-recap-part-one/</feedburner:origLink></item>
		<item>
		<title>WorkflowLab Has Been Released on Adobe Labs</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/HaOaEw-Svoc/</link>
		<comments>http://www.developmentarc.com/site/2009/10/workflowlab-has-been-released-on-adobe-labs/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 14:24:56 +0000</pubDate>
		<dc:creator>Aaron Pedersen</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Clients]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[Flash Catalyst]]></category>

		<category><![CDATA[flashbuilder]]></category>

		<category><![CDATA[flex 4]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=371</guid>
		<description><![CDATA[
We are happy to announce the release of Adobe&#8217;s newest application: WorkflowLab (public Alpha release). WorkflowLab was built by DevelopmentArc for Adobe and was designed, developed and deployed in under 6 weeks.  This new AIR application allows users to view and construct project workflows to demonstrate how their products, applications, and/or technologies are built using [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.developmentarc.com/site/wp-content/uploads/2009/10/picture-1.png"><img class="size-medium wp-image-374  aligncenter" title="Workflow Lab Screenshot" src="http://www.developmentarc.com/site/wp-content/uploads/2009/10/picture-1-300x205.png" alt="Workflow Lab Screenshot" width="300" height="205" /></a></p>
<p style="text-align: left;">We are happy to announce the release of Adobe&#8217;s newest application: <a title="Adobe's WorkflowLab" href="http://labs.adobe.com/technologies/workflowlab/" target="_blank">WorkflowLab (</a><a href="http://labs.adobe.com/technologies/workflowlab/">public Alpha release</a><a title="Adobe's WorkflowLab" href="http://labs.adobe.com/technologies/workflowlab/" target="_blank">)</a>. WorkflowLab was built by DevelopmentArc for Adobe and was designed, developed and deployed in under 6 weeks.  This new AIR application allows users to view and construct project workflows to demonstrate how their products, applications, and/or technologies are built using Adobe Technologies.  The tool allows user to define project tasks and assign Adobe tools and technologies to those tasks to help illustrate how Adobe&#8217;s products and services assisted in completing the project.  Inside of the tool Adobe has provided a core set of workflow starting points that can be used to help guide the workflow of new project or as a starting point for your own workflow. Download it <a href="http://labs.adobe.com/technologies/workflowlab/">here</a>.</p>
<p style="text-align: left;"><strong>Development Process and Technologies</strong></p>
<p style="text-align: left;">WorkflowLab was built using Adobe&#8217;s soon to be released Flex 4 SDK, Flash Builder, and Flash Catalyst technologies.  Taking advantage of the new Flex 4 skinning Component Architecture, DevelopmentArc was able to skin almost all of the application&#8217;s components using FXG (MXMLG).  In an upcoming Adobe Developer Center article we will walk you through the entire process from start to finish on how we planned, designed and developed WorkflowLab using these new technologies.</p>
<p style="text-align: left;">We were lucky to be joined on this project with Chris Stone (<a href="http://twitter.com/stony" target="_blank">http://twitter.com/stony</a>) out of Vancouver BC. Chris is one of the most talented UX designs we have had the privilege to work with.  For the project Chris leveraged Adobe InDesign for user workflows and wireframes and Adobe Illustrator for all design comps.  I can proudly state that Chris has some of the cleanest design assets out there. Having lean and organized Illustrator files is going to be a key trait of Flex/Flash projects moving forward as Flash Catalyst become a more integral part of the designer/developer workflow.   A detailed explanation of how design was part of the overall product workflow is explained in the ADC article linked above.</p>
<p style="text-align: left;"><strong>Community Collaboration</strong></p>
<p style="text-align: left;">Also launched today is  an Adobe Cookbooks site dedicated to WorkflowLab.  The site allows user to share their workflows with the community. We encourage you to download Workflow lab, create a new workflow or extend a Workflow Starting Point and share it with the community. There are so many ways to &#8220;skin a cat&#8221; the more we share the better off our lives will be as developers, designs, product managers, and executives.  Start sharing your <a title="Adobe Cookbooks for WorkflowLab" href="http://cookbooks.adobe.com/workflowlab" target="_blank">workflow recipes here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=HaOaEw-Svoc:oJvDronV5Sk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=HaOaEw-Svoc:oJvDronV5Sk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=HaOaEw-Svoc:oJvDronV5Sk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=HaOaEw-Svoc:oJvDronV5Sk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=HaOaEw-Svoc:oJvDronV5Sk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=HaOaEw-Svoc:oJvDronV5Sk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=HaOaEw-Svoc:oJvDronV5Sk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=HaOaEw-Svoc:oJvDronV5Sk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=HaOaEw-Svoc:oJvDronV5Sk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/HaOaEw-Svoc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/10/workflowlab-has-been-released-on-adobe-labs/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/10/workflowlab-has-been-released-on-adobe-labs/</feedburner:origLink></item>
		<item>
		<title>DevelopmentArc @ Adobe Max 2009</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/ug9779DICTA/</link>
		<comments>http://www.developmentarc.com/site/2009/10/developmentarc-adobe-max-2009/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 06:55:18 +0000</pubDate>
		<dc:creator>Aaron Pedersen</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[conferences]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[adobemax]]></category>

		<category><![CDATA[Flash Builder]]></category>

		<category><![CDATA[Flash Catalyst]]></category>

		<category><![CDATA[max2009]]></category>

		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=380</guid>
		<description><![CDATA[This year James and I will be involved in three separate sessions at the Adobe Max conference in LA.   Adobe Max provides a collaborative arena for the communities of designers, developers, project managers, executives and any other project participators to gather and  share ideas, real-life experiences, theories, secrets, and best practices.  Over the past year [...]]]></description>
			<content:encoded><![CDATA[<p>This year James and I will be involved in three separate sessions at the Adobe Max conference in LA.   Adobe Max provides a collaborative arena for the communities of designers, developers, project managers, executives and any other project participators to gather and  share ideas, real-life experiences, theories, secrets, and best practices.  Over the past year DevelopmentArc has been involved in a wide variety of projects and we are excited to share our  experience with the community the best we can.   Below is breakdown of the three sessions we are involved in. Two involve a secret (shhhh) project that is to be released next Monday.  Follow James (<a href="http://twitter.com/jamespolanco">@jamespolanco</a>) or I (<a href="http://twitter.com/aaronpedersen">@aaronpedersen</a>) on twitter and we will share as soon as we can.</p>
<p><strong>Delivering Successful Flash Platform Projects (Monday, Oct 5th 11:30am - #adobemax181)<br />
</strong></p>
<p>In this session we will be joined by co-author Doug Winnie of Adobe to discuss how during any project the planning phase is often times the most over looked and in most cases the most valuable.  We take you through a fictitious story of two companies as they collaborate on a project.  We plan to highlight exactly why planning when not overlooked, can start a project off on the right foot and actually cost the development team less time, money and resources to complete.</p>
<p><strong>Workflows for the Flash Platform (Monday, Oct 5th 5pm - #adobemax286)<br />
</strong></p>
<p>We are joining Doug Winnie again to discuss Flash Platform Workflows. Doug is an expert on the subject and spends most of his days working with various product teams within Adobe trying to enhance the workflow process between applications.  Doug will breakdown the workflow process and demonstrate some very cool and new technologies.</p>
<p><strong>Bird of a Feather (Wednesday, Oct 7th 12:oopm - 1:30pm)</strong></p>
<p>Again joining Mr. Winnie, James and I will be sharing our experiences with whom ever will listen.  We will explain, answer questions about the workflow we used in developing the secret application using Adobe&#8217;s soon-to-be released Flex 4 SDK, Flash Builder 4, and Flash Catalyst technologies.  The project had a quick turn around and a small team.  Because of these constraints we employed a modified workflow that leverages Flex 4&#8217;s Spark Skinning Architecture along with an unconventional use of Flash Catalyst to enhance a developer-drive workflow. Come by and say hi.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=ug9779DICTA:of7nSWmehPE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=ug9779DICTA:of7nSWmehPE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=ug9779DICTA:of7nSWmehPE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=ug9779DICTA:of7nSWmehPE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=ug9779DICTA:of7nSWmehPE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=ug9779DICTA:of7nSWmehPE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=ug9779DICTA:of7nSWmehPE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=ug9779DICTA:of7nSWmehPE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=ug9779DICTA:of7nSWmehPE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/ug9779DICTA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/10/developmentarc-adobe-max-2009/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/10/developmentarc-adobe-max-2009/</feedburner:origLink></item>
		<item>
		<title>New Version of Yahoo! Mail Flickr Appliciation Released!</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/rLkwK1_qIfo/</link>
		<comments>http://www.developmentarc.com/site/2009/09/new-version-of-yahoo-mail-flickr-appliciation-released/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 16:07:14 +0000</pubDate>
		<dc:creator>Aaron Pedersen</dc:creator>
		
		<category><![CDATA[Clients]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[Flickr]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=352</guid>
		<description><![CDATA[

We are proud to announce that Yahoo! with DevelopmentArc assistance launched an enhanced Yahoo! Mail Flickr application.  The updated application built for the new Yahoo! Mail interface allows users to quickly view and share photos stored on Flickr, directly within the mail interface. A user can login and view their own photos and/or view those [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align:center"><a href="http://www.developmentarc.com/site/wp-content/uploads/2009/09/picture-10.png"><img class="aligncenter size-medium wp-image-362" title="picture-10" src="http://www.developmentarc.com/site/wp-content/uploads/2009/09/picture-10-300x158.png" alt="picture-10" width="300" height="158" /></a></div>
<p></p>
<p>We are proud to announce that Yahoo! with DevelopmentArc assistance launched an enhanced Yahoo! Mail Flickr application.  The updated application built for the new Yahoo! Mail interface allows users to quickly view and share photos stored on Flickr, directly within the mail interface. A user can login and view their own photos and/or view those available to the public. With three clicks, users can construct an email and share a photo or set with friends and family</p>
<p>DevelopmentArc was responsible for enhancing the Flickr 1.0 application by developing and integrating a customized localization system to enable Yahoo! to provide different languages for the application. The new application now supports 7 locales including; English Australia, English United Kingdom, English United States, Spanish Mexico, Portuguese Brazil, Chinese (traditional) Taiwan, and Chinese (traditional) Hong Kong.</p>
<p>As well as localizing the application, new features were added  such as the ability for users to view and share their photo sets. Images will give users information about who took the picture and other details. The layout was extended to use a tab view instead of a smaller dialog. When a user resizes the window, the photo viewport now expands and collapses to give them more columns of photos. No longer will users with 30’ Mac monitors suffer the same fate of 1024&#215;768 resolution users.</p>
<p>If you are using the New Yahoo! Mail (not Classic view) install the application and start sharing some photos.  We hope you enjoy the enhancements!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=rLkwK1_qIfo:vjMtwWZbaMI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=rLkwK1_qIfo:vjMtwWZbaMI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=rLkwK1_qIfo:vjMtwWZbaMI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=rLkwK1_qIfo:vjMtwWZbaMI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=rLkwK1_qIfo:vjMtwWZbaMI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=rLkwK1_qIfo:vjMtwWZbaMI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=rLkwK1_qIfo:vjMtwWZbaMI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=rLkwK1_qIfo:vjMtwWZbaMI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=rLkwK1_qIfo:vjMtwWZbaMI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/rLkwK1_qIfo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/09/new-version-of-yahoo-mail-flickr-appliciation-released/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/09/new-version-of-yahoo-mail-flickr-appliciation-released/</feedburner:origLink></item>
		<item>
		<title>New Adobe Edge Articles Posted</title>
		<link>http://feedproxy.google.com/~r/Developmentarc/~3/1b7jN8zWnV8/</link>
		<comments>http://www.developmentarc.com/site/2009/08/new-adobe-edge-articles-posted/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 17:46:21 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
		
		<category><![CDATA[Flash Catalyst]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[articles]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[fxg]]></category>

		<category><![CDATA[Illustrator]]></category>

		<category><![CDATA[MXML Graphics]]></category>

		<category><![CDATA[MXMLG]]></category>

		<guid isPermaLink="false">http://www.developmentarc.com/site/?p=349</guid>
		<description><![CDATA[This quarter&#8217;s new Adobe Edge is now live on their site and DevelopmentArc has two features this release.  Aaron sat down and wrote up a great introduction to Flash Catalyst round-tripping called &#8220;Roundtripping between Adobe Flash Catalyst and Adobe Creative Suite 4&#8220;.  He takes a look at how it works and a proposed workflow that [...]]]></description>
			<content:encoded><![CDATA[<p>This quarter&#8217;s new <a title="Adobe Edge" href="http://www.adobe.com/newsletters/edge/" target="_blank">Adobe Edge</a> is now live on their site and DevelopmentArc has two features this release.  Aaron sat down and wrote up a great introduction to Flash Catalyst round-tripping called &#8220;<a title="Roundtripping between Adobe Flash Catalyst and Adobe Creative Suite 4" href="http://www.adobe.com/newsletters/edge/august2009/articles/article5/index.html?trackingid=EVHFD" target="_blank">Roundtripping between Adobe Flash Catalyst and Adobe Creative Suite 4</a>&#8220;.  He takes a look at how it works and a proposed workflow that designers and Catalyst users (maybe the same person, maybe not) can use to make iterative updates to the UI.</p>
<p>I (James) sat down and examined the new MXML Graphics and FXG formats in the article &#8220;<a title="&quot;Understanding FXG, a primer on Adobe's new graphics file format&quot;" href="http://www.adobe.com/newsletters/edge/august2009/articles/article1/index.html?trackingid=EVHEZ" target="_blank">Understanding FXG, a primer on Adobe&#8217;s new graphics file format</a>&#8220;.  These are exciting additions to the Flash Platform allowing both easier to read design content and inter-interoperability between tools.  If you are a Flex developer who uses Degrafa, then the concepts of MXML Graphics are going to make a lot of sense.  Let us know what you all think!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Developmentarc?a=1b7jN8zWnV8:NNxKr0ZLwm0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=1b7jN8zWnV8:NNxKr0ZLwm0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=1b7jN8zWnV8:NNxKr0ZLwm0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=1b7jN8zWnV8:NNxKr0ZLwm0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=1b7jN8zWnV8:NNxKr0ZLwm0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=1b7jN8zWnV8:NNxKr0ZLwm0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=1b7jN8zWnV8:NNxKr0ZLwm0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Developmentarc?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Developmentarc?a=1b7jN8zWnV8:NNxKr0ZLwm0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Developmentarc?i=1b7jN8zWnV8:NNxKr0ZLwm0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Developmentarc/~4/1b7jN8zWnV8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developmentarc.com/site/2009/08/new-adobe-edge-articles-posted/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.developmentarc.com/site/2009/08/new-adobe-edge-articles-posted/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.703 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-17 23:27:30 -->
