<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vivisecting Media &#187; max 2007</title>
	<atom:link href="http://blog.vivisectingmedia.com/category/max-2007/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vivisectingmedia.com</link>
	<description>Looking at the world of media: from music to RIA.</description>
	<lastBuildDate>Fri, 09 Oct 2009 15:29:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flash Internals: The ActionScript Virtual Machine (part three)</title>
		<link>http://blog.vivisectingmedia.com/2007/11/flash-internals-the-actionscript-virtual-machine-part-three/</link>
		<comments>http://blog.vivisectingmedia.com/2007/11/flash-internals-the-actionscript-virtual-machine-part-three/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 19:48:09 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex Development]]></category>
		<category><![CDATA[max 2007]]></category>

		<guid isPermaLink="false">http://james.fakescience.com/blog/?p=73</guid>
		<description><![CDATA[During the Adobe Max Conference I had the chance to sit in on &#8220;Flash Player Internals&#8221; session put on by Jim Corbett and Lee Thomason. Of all the sessions I attended at Max, this was by far the best and most informative for me. It was deep, fast and packed with little nuggets that I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.vivisectingmedia.com/wp-content/uploads/2007/10/rune_flash.gif" title="rune_flash.gif" alt="rune_flash.gif" align="left" />During the <a href="http://james.fakescience.com/blog//?cat=18">Adobe Max Conference</a> I had the chance to sit in on &#8220;Flash Player Internals&#8221; session put on by Jim Corbett and Lee Thomason. Of all the sessions I attended at Max, this was by far the best and most informative for me. It was deep, fast and packed with little nuggets that I had heard in passing but never had fully explained. I am going to try and recap the session as best as I can and if you see any incorrect data please let me know!</p>

<p><a href="http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/">Read Part One: Motto&#8217;s and Percentages</a>.
<a href="http://blog.vivisectingmedia.com/2007/10/flash-internals-byte-code-control-tags-renderers-oh-my-part-two/">Read Part Two: Byte Code, Control Tags, Renderers&#8230; oh my!</a></p>

<p><strong>Size Was King </strong></p>

<p>Prior to Flash Player 9, one of the complaints from the Flash development community was the overall performance of the ActionScript language.  Performance not only for animation but also for manipulation of large data sets.  This issue was most apparent with Flex 1 and 1.5, which were developed on ActionScript 2.  The challenge the Player team was facing with ActionScript was that the ActionScript Virtual Machine (AVM) had reached its performance limit.</p>

<p>Until Flash Player 9, size was always the most important factor for the development team.  These were the days when modems still ruled the earth and ATM to the door was a fantasy dream utopia.  To help facilitate adoption, the Flash Player had to be small and compact so that users wouldn&#8217;t flinch when it was time to install or upgrade.  During my stint at the company, I remember hearing of huge battles for just adding 10k to the player size.</p>

<p>With Flash Player 9, the landscape had changed a lot.  High Speed Internet was more of a reality and therefore size became less of the driving factor and more of an desirable goal.  Performance was now the new king.  At the time, Macromedia decided to start the process from moving the Flash Player from a plugin and into the realm of a platform.  In our planning meetings we started to talk about the Flash Platform and what it could achieve.  To make this a reality the player had to speed up and handle large data sets with grace and ease.  With this goal; in stepped AVM+.</p>

<p><strong>My Two AVMs</strong></p>

<p>AVM+ was the new ActionScript Virtual Machine.  It was designed from the ground up for screaming performance.  The goal was an overall 10x performance increase, which was a really serious task for the Player team.  Not only was AVM+ about speed but it also opened the doors for new features such as Just In Time (JIT) compiling, cleaning up the existing and often confusing API set, updating the ActionScript language to a first class citizen and finally exposing granular control over how content is accessed and managed.</p>

<p>One of the drawbacks with AVM+ is due to the radically different design, there was no way it could be backward compatible.  This meant that if the Player only had AVM+ then the team would not be honoring their motto of &#8220;Don&#8217;t break the web.&#8221;.  To resolve this, Flash Player 9 contains AVM-, or the original AVM from Flash Player 8 (plus some fixes).  Having two AVMs does a few things that are not beneficial:
<ol>
    <li> Dramatically increases the file size of the Flash Player.</li>
    <li>Means that mixed code, such as SWFs that use AS3 and SWFs that use AS2 in the same application, are not able to directly talk to each other because the code is being run in different sandboxed AVMs</li>
</ol>
There are ways around the second item, but that is beyond the scope of this article.  I may return to that subject in a later post.  So let&#8217;s delve a little deeper into the world of AVM+.</p>

<p><strong>What did we get?</strong></p>

<p>AVM+ created support for ActionScript 3, the first implementation of the ECMA 4 Spec.  ECMA is the standard that JavaScript is based on and ECMA 4 is the basis for the new JavaScript 2.  Right now there is a tremendous amount of fighting going on about ECMA 4, JS 2 and Browser support.  The Ajax community is all aflutter right now but one of the benefits is that when JS 2 is finally approved and in the wild, AS3 developers will have a good leg up on the language and its structure.</p>

<p>At the release of Flash Player 9, ECMA 4 was still very much in draft form and meant that the Player team had to solve language issues without the guidence or approval of the ECMA board.  The issue with this is that when the language format is finalized new syntax will need to be added to ActionScript.  My guess is that AS4 is not that far away&#8230; mmm &#8220;let is the new var&#8221;.</p>

<p>As an old school Flash developer, one of the coolest additions to the AVM+ is the ability to directly access and manipulate the display list.  In previous versions of Flash if we wanted to dynamically add content we need to either load it into a MovieClip using the old attachMovie(), or create an empty MovieClip to shove things into.  Now that the display list is accessible developers can spawn new instances of objects and attach them directly to the display list. The display list is a tree based on a parent/child hierarchy that enables branches to be moved around while maintaing their structures.  This is great for when you want to build a specific layout, pop it off of one part of the display list and then add it somewhere else.  Again, this is a deep topic that I may write a whole article about.</p>

<p>Debugging an application has become a lot easier with AVM+ because a robust Exception handling system has been put into place.  This is great for building apps because its now possible to catch the exception or see the full call stack when the exception is thrown.  One of the challenges with exception handling is that if you don&#8217;t catch the error and your user is running a debug player then they will see the exception.  Right now uncaught exceptions are a big problem with Flex apps.</p>

<p>AVM+ now supports Loading classes, which may not seem a big deal but it offers a lot of flexibility.  In the previous players, when you loaded content the item that was loading the content was removed and replaced by the loaded content.  Now a loader class can be used to pull in assets and then either displayed via the loader or the content can be referenced and used elsewhere.  This also means that if the data is graphical (PNG, GIF, JPEG, Video, etc.) and coming from a crossdomain supported location you can use the bitmap clone() feature and then clone Bitmaps from a single loaded item and use it in multiple places.  This is pretty powerful stuff if used correctly.</p>

<p>Finally, for this post at least, we come to the open source aspect of the AVM.  Adobe did a very interesting, and personally brilliant, move.  They open sourced the AVM+ to the Mozilla foundation.  As I mentioned earlier, the AVM+ is for ActionScript 3 which is an ECMA 4 language, just the same as JavaScript 2.  Mozilla is now using AVM+ aka &#8220;Tamarin&#8221; as their core VM for JavaScript 2.  As Tamarin is updated by Mozilla, Adobe pulls in the new build of the VM and uses it in the Flash Player.  If Adobe makes a fix to the VM, they submit it back to Mozilla.  This helps keep the languages (ActionScript and JavaScript)  in sync with the ECMA standard and opens the door so developers can truly see what is going on under the VM hood.</p>

<p>Enough for now&#8230; next time I will dig into the world of JIT and Garbage Collection.</p>

<p><strong>Update</strong>:
<a href="http://blog.vivisectingmedia.com/2007/11/flash-internals-jit-and-garbage-collection-part-four/">Read Part Four: Just-in-time (JIT) compilation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vivisectingmedia.com/2007/11/flash-internals-the-actionscript-virtual-machine-part-three/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash Internals: Byte Code, Control Tags, Renderers&#8230; oh my! (part two)</title>
		<link>http://blog.vivisectingmedia.com/2007/10/flash-internals-byte-code-control-tags-renderers-oh-my-part-two/</link>
		<comments>http://blog.vivisectingmedia.com/2007/10/flash-internals-byte-code-control-tags-renderers-oh-my-part-two/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 21:00:37 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[max 2007]]></category>

		<guid isPermaLink="false">http://james.fakescience.com/blog/?p=70</guid>
		<description><![CDATA[During the Adobe Max Conference I had the chance to sit in on &#8220;Flash Player Internals&#8221; session put on by Jim Corbett and Lee Thomason. Of all the sessions I attended at Max, this was by far the best and most informative for me. It was deep, fast and packed with little nuggets that I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.vivisectingmedia.com/wp-content/uploads/2007/10/rune_flash.gif" title="rune_flash.gif" alt="rune_flash.gif" align="left" />During the <a href="http://james.fakescience.com/blog//?cat=18">Adobe Max Conference</a> I had the chance to sit in on &#8220;Flash Player Internals&#8221; session put on by Jim Corbett and Lee Thomason. Of all the sessions I attended at Max, this was by far the best and most informative for me. It was deep, fast and packed with little nuggets that I had heard in passing but never had fully explained. I am going to try and recap the session as best as I can and if you see any incorrect data please let me know!</p>

<p><a href="http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/">Read Part One: Motto&#8217;s and Percentages</a>.</p>

<p><strong>Byte&#8217;ing the Hand That Feeds</strong></p>

<p>When an application is compiled from a FLA or mxmlc the generated SWF file has two main components that control how the application behaves: Byte Code and Control Tags.  The Byte Code is the generated ActionScript.  Control Tags are currently only produced from Flash Authoring.</p>

<p>The generated Byte Codes are loaded into the Player via the SWF and are sent to the Flash Player ActionScript Virtual Machine (AVM) for processing.  The AVM processes the Byte Codes and then manipulates the current Display List based on the commands within the code.  The Display List is a tree based structure that represents an asset hierarchy within the SWF.  These assets are MovieClips (Sprites / Components), Audio elements, Video elements, etc.  The assets are added, updated and removed from display list by the AVM. In the following example, the code is compiled down into a Byte Code set that at run time informs the AVM to create a new Button and then add it to the display list.</p>


<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> myButton:<span style="color: #0066CC;">Button</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Button</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
Application.<span style="color: #006600;">application</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>myButton<span style="color: #66cc66;">&#41;</span>;</pre></div></div>


<p>Control Tags skip the Byte Code and AVM step and directly access the Display List.  Control Tags were briefly mentioned but from what I recall when I worked at Macromedia/Adobe, the timeline&#8217;s keyframes are compiled into Control Tags and when processed by the Player they update the stack according to how the keyframe interaction was defined.</p>

<p><strong>Render Me This</strong></p>

<p>There are two types of renderer&#8217;s in the Flash Player, immediate and retained.  The vector engine that Flash is famous for is a retained renderer.  The example that was used was that we request two boxes to be drawn in the same render pass (or frame): a red rectangle and a black rectangle.  The black rectangle is 40px by 40px, is located at 10,10 on the stage and is requested first.  The red rectangle is 200px by 200px, is located at 0,0 and is drawn second.</p>

<p>The retained renderer is a smart rendering system and sees that the black rectangle is covered by the red rectangle and therefore the rendering system skips drawing the black rectangle.  This process helps memory usage and other system gains but it is a more time consuming process because all the drawing requests have to be made before the render pass is completed.</p>

<p>As I mentioned earlier, there are two renderer&#8217;s in the player.  The second renderer is the Bitmap renderer which is an immediate render and happens off stage.  This means that as data is requested to be drawn in the Bitmap renderer buffer, the update is done at the time of the request.  This makes Bitmap rendering much, much faster and is one reason why changing animations and other assets to bitmaps can offer an increased performance gain.  For more information about Bitmap Caching performance check out <a href="http://www.adobe.com/devnet/flash/articles/bitmap_caching.html" target="_blank">Guy Watson&#8217;s &#8220;Using Bitmap Caching in Flash&#8221;</a>.</p>

<p>I was going to delve into the AVM deeper in this post, but looking at what I have to talk about I am going to save that for part three!</p>

<p><strong>Update</strong>:
<a href="http://blog.vivisectingmedia.com/2007/11/flash-internals-the-actionscript-virtual-machine-part-three/">Read Part Three: The ActionScript Virtual Machine</a><br/>
<a href="http://blog.vivisectingmedia.com/2007/11/flash-internals-jit-and-garbage-collection-part-four/">Read Part Four: Just-in-time (JIT) compilation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vivisectingmedia.com/2007/10/flash-internals-byte-code-control-tags-renderers-oh-my-part-two/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash Player Internals: Motto&#8217;s and Percentages (part one)</title>
		<link>http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/</link>
		<comments>http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 22:38:18 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[max 2007]]></category>

		<guid isPermaLink="false">http://james.fakescience.com/blog/?p=67</guid>
		<description><![CDATA[During the Adobe Max Conference I had the chance to sit in on &#8220;Flash Player Internals&#8221; session put on by Jim Corbett and Lee Thomason.  Of all the sessions I attended at Max, this was by far the best and most informative for me.  It was deep, fast and packed with little nuggets [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.vivisectingmedia.com/wp-content/uploads/2007/10/rune_flash.gif" title="rune_flash.gif" alt="rune_flash.gif" align="left" />During the <a href="http://james.fakescience.com/blog/?cat=18">Adobe Max Conference</a> I had the chance to sit in on &#8220;Flash Player Internals&#8221; session put on by Jim Corbett and Lee Thomason.  Of all the sessions I attended at Max, this was by far the best and most informative for me.  It was deep, fast and packed with little nuggets that I had heard in passing but never had fully explained.  I am going to try and recap the session as best as I can and if you see any incorrect data please let me know!</p>

<p><strong>You break it you buy it </strong></p>

<p>First off, Jim and Lee dropped the Flash Player motto on us: &#8220;No breaking the web&#8221;.  This is a really important concept for developers as they evolve apps over time.  As a lot of oldschool Flash devs know there are a lot of hacks we used to take advantage of.   Accessing objects via hidden flags so we can get to the data that we really need.  The issue is that some of these hacks were bugs in the player that we used to our advantage.  What happens when the Flash Player team finds and then fixes the bug we built upon?</p>

<p>For example, we built our SWF in Flash 6 and used a hack to make our application work.  In Flash 7 they fix the bug/hack. This would mean that if our  SWF was run in Flash Player 7 the app would break&#8230; and this violates the Flash Player teams motto.</p>

<p>So, what they have done is made a kind of progressive fallback sandbox. If it worked in Flash Player 6 and your movie was made for Flash Player 6 then your SWF will be run in the FP6 version of the sandbox and your hack will work.  If the developer wants to leverage the fix in Flash Player 7, then the SWF needs to be recompiled for that version.</p>

<p>This ability goes all the way back to the first Flash version. I am making the assumption this is based on major releases and not dot releases.  I also assume that this is only for hacks that are not considered a security risk. I really wish I had a chance to ask about that&#8230; but my brain was full by the time the session was done.</p>

<p><strong>How deep is deep?</strong></p>

<p>One of the questions clients almost always ask is: &#8220;How deep is the Flash Player <em>x.x</em>  penetration?&#8221;.  If you go to the Adobe website you will see that <a href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html" title="Flash Player statistics" target="_blank">Flash Player 9 has 93.3% of the mature market</a> (as of Sept. 2007).  Okay, but the trick is what about the <em>.x</em>? Does 9.0.47 really have 93.3%?  When &#8220;Moviestar&#8221; (the newest player dot release code name) rolls out  when will it have the full share of the pie?  Jim and Lee dropped some great estimation numbers on us.  These are based on the percentage of adoption from the release date of the new dot release (or player too).</p>

<p><em>@3 months = 30 &#8211; 40%
@6 months = 55 &#8211; 65
@9 months = 80 &#8211; 85%
@12 months = 90+%</em></p>

<p>What it gets down to is that if you need the newest dot release you need to consider the penetration estimates just like you would with a new full version update.  For a great breakdown of how this works check out <a href="http://weblogs.macromedia.com/emmy/archives/2007/08/need_a_way_to_p.cfm" title="Player Penetration Estimation" target="_blank">Emmy Huang&#8217;s blog</a> about the topic (where I re-poached the values since I couldn&#8217;t type fast enough to get them all).</p>

<p>Okay, so that&#8217;s post one and I just scratched the surface&#8230; next up will be Byte Code, Control Tags,  AVMs&#8230; oh my!</p>

<p><em><strong>Update:</strong></em>
<a href="http://blog.vivisectingmedia.com/2007/10/flash-internals-byte-code-control-tags-renderers-oh-my-part-two/">Read Part Two:  Byte Code, Control Tags, Renderers&#8230; oh my!</a>
<a href="http://blog.vivisectingmedia.com/2007/11/flash-internals-the-actionscript-virtual-machine-part-three/"> Read Part Three: The ActionScript Virtual Machine</a>
<a href="http://blog.vivisectingmedia.com/2007/11/flash-internals-jit-and-garbage-collection-part-four/">Read Part Four: Just-in-time (JIT) compilation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vivisectingmedia.com/2007/10/flash-player-internals-mottos-and-percentages-part-one/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Quick update&#8230;</title>
		<link>http://blog.vivisectingmedia.com/2007/10/quick-update/</link>
		<comments>http://blog.vivisectingmedia.com/2007/10/quick-update/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 16:38:23 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
				<category><![CDATA[Fake Science]]></category>
		<category><![CDATA[General Media / Stuff]]></category>
		<category><![CDATA[max 2007]]></category>

		<guid isPermaLink="false">http://james.fakescience.com/blog/?p=64</guid>
		<description><![CDATA[Things have been crazy hectic for me over the last few weeks.  The big news is that we have decided to close down the Fake Science store.  For more details check out my post on the FS Blog about why we are closing the store.  I am hoping that once this all [...]]]></description>
			<content:encoded><![CDATA[<p>Things have been crazy hectic for me over the last few weeks.  The big news is that we have decided to close down the Fake Science store.  For more details check out my post on the FS Blog about <a href="http://dicta.fakescience.com/2007/10/15/fake-science-store-closing-november-1st-2007/" target="_blank">why we are closing the store</a>.  I am hoping that once this all settles down I will have more free time to do things like post and work on some examples.  In fact, I am working on an article with some people right now that I can&#8217;t wait to talk about, but for now I can only tease you about it.</p>

<p>I still have a lot of notes from Max that I want to post, the one topic that I really want to dig into is the Flash Player internals presentation that I attended.  Lots of great stuff and I want to sit down and get it up.  I may try to later today.</p>

<p>I have heard rumor that sessions from Max were recorded and may become available.  I hope they do, specifically for the Inspire Session that was presented by Michael Gough.  Michael co-heads the <a href="http://www.adobe.com/cfusion/xd/inspire/index.cfm" title="XD's new portal site" target="_blank">Adobe XD design team</a> and he did an amazing session talking about design challenges and goals for current and future web applications.  Brilliant stuff and I want to spend more time thinking and talking about what he hit on.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vivisectingmedia.com/2007/10/quick-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Max: Adobe Hosted Services &#8211; Web APIs and Mashups</title>
		<link>http://blog.vivisectingmedia.com/2007/10/adobe-max-adobe-hosted-services-web-apis-and-mashups/</link>
		<comments>http://blog.vivisectingmedia.com/2007/10/adobe-max-adobe-hosted-services-web-apis-and-mashups/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 15:47:41 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
				<category><![CDATA[Adobe APIs]]></category>
		<category><![CDATA[max 2007]]></category>

		<guid isPermaLink="false">http://james.fakescience.com/blog/?p=63</guid>
		<description><![CDATA[Adobe is now providing a document sharing tool, repository and public APIâ€™s, launched today.  They are calling the service Adobe Share and you can try it out at: share.adobe.com

The Adobe Share application is a Flex based tool used for your repository management.  You an add files, remove files, update files, manage user permissions [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.vivisectingmedia.com/wp-content/uploads/2007/09/max2007.png" title="MAX 2007 Logo" alt="MAX 2007 Logo" align="left" hspace="10" vspace="10" />Adobe is now providing a document sharing tool, repository and public APIâ€™s, launched today.  They are calling the service Adobe Share and you can try it out at: <a href="http://share.adobe.com" title="Adobe Share" target="_blank">share.adobe.com</a></p>

<p>The Adobe Share application is a Flex based tool used for your repository management.  You an add files, remove files, update files, manage user permissions and other basic functionality you would need.</p>

<p>With the new repository Adobe is also releasing a public API to allow developers to build custom tools around the repository.  The API services provides hooks into the Share system to manage users, file tracking, file upload, usage tracking, etc.</p>

<p>The API is REST based using a token system that most services have been adopting.  Developers request a token for their repository and then use it in the connection to identify the account.  The key not only pairs you to the repository, it also prevents abuse and allows Adobe to provide service throttling.</p>

<p>Currently the accounts are throttled to 10,000 calls an hour and require a 500ms delay between calls from a client.  Clients are tracked by session so the time is not tracked for the whole account, just the specific client.  The 10k limit is set to the account.</p>

<p>One interesting feature that was hinted at during the session is the ability to have a MD5 hash as a unique key for your application.  This key allows you to verify that the application you developed is the only one that can access your repository and helps provide a much more secure application.
There are currently two SDK libraries available for Adobe share: Java and Flex. They didnâ€™t mention if the SDK for Flex is truly Flex or if it is AS3.  My impression is that it was Flex and leveraged HTTPService, but I can not confirm this.</p>

<p>Currently, media files are not supported (MP3, FLV, MOV) but DOC, PDF, ZIP are. One feature they are looking to add is the abiltiy to do document conversion so that a PDF can be converted to a SWF or potentially a Word document to PDF, etc.</p>

<p><span id="more-63"></span></p>

<p>The second half of the presentation was about the upcoming Adobe Connect public service APIs and SDK.  One note about the following content is that this feature set is still in development and may drastically change from what was presented.</p>

<p>First off, Adobe Connect is being rebuilt entirely in Flex (probably 3 since its still in development).  One of the benefits of this is that a lot of the core classes and components that are being developed for connect will be released with the SDK. The focus of the redesign is to refactor the UI to move a lot of basic tools and options out of the pod module and move them to a more unified control panel/UI that allows easier access from any view.</p>

<p>One reason that Adobe wants to release an SDK is that there are a lot of basic requirements for Collaboration applications, such as Push/Pull of data, AV streams, user identity (who the users are), user presence (who has joined/left), permissions (who can control the presentation) and document/media sharing.  Many of these tasks are often not thought of developers, are tedious to build or can become complex very quickly.  Adobe wants to help streamline development by providing solutions to these tasks, that is where the SDK comes in.</p>

<p>The SDK is currently called CoCoMo and provides the foundation classes used in Adobe Connect.  The SDK also includes component modules/pods that support webcam, mic, chat, etc.  These components can then be extended to make custom versions or developers can take the foundation classes and build their own from the ground up.</p>

<p>As I mentioned there is a public API that is REST based that will allow developers to leverage the existing Adobe Connect network and build applications using this network.  This is important because developers can build large scale collaboration applications and not worry about having to build a custom hosting solution to manage the server environments.</p>

<p>An interesting MXML tag that Adobe is working on for the Connect SDK is the &lt;mx:connectSession&gt; tag which handles connection to the servers.  This tag points to a URL redirect that allows for automatic failover if the current server goes down, reconnection, connection identification management, etc.  This tag also handle child creation only after the connection has been established.  This makes development a lot easier because developers donâ€™t have to worry about async management and load order. This functionality can be overridden if needed but it seems very straightforward and easy to use.</p>

<p>What Adobe really wants is Real Time Collaboration (RTC) out of the box.  This includes: Async management, room management, user presence/management, disconnect/reconnect automation, state persistence(â€œlate comerâ€ data is managed for you), recording/playback, external addressability (new clients that talk to the service).</p>

<p>Check out the Adobe blog:  <a href="http://blogs.adobe.com/collabmethods/" title="Collaborative Methods" target="_blank">blogs.adobe.com/collabmethods</a>.  They will use this as a forum to talk about the API / REST technology.</p>

<p>Currently the API and SDK is not available but the goal is to at first launch a free but throttled version and then roll out purchasable enterprise solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vivisectingmedia.com/2007/10/adobe-max-adobe-hosted-services-web-apis-and-mashups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Max: General Session and notes&#8230;</title>
		<link>http://blog.vivisectingmedia.com/2007/10/adobe-max-general-session-and-notes/</link>
		<comments>http://blog.vivisectingmedia.com/2007/10/adobe-max-general-session-and-notes/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 15:23:44 +0000</pubDate>
		<dc:creator>James Polanco</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[max 2007]]></category>

		<guid isPermaLink="false">http://james.fakescience.com/blog/?p=62</guid>
		<description><![CDATA[(posted on day 2 due to lack of connection)

I am at Adobe MAX 2007 being held in Chicago and it was kicked off with the General Session hosted by Kevin Lynch.  As with previous MAXâ€™s the general session is part sneak peek and part highlights of the new technologies/applications that Adobe and their customers [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.vivisectingmedia.com/wp-content/uploads/2007/09/max2007.png" title="MAX 2007 Logo" alt="MAX 2007 Logo" align="left" hspace="10" vspace="10" />(posted on day 2 due to lack of connection)</p>

<p>I am at Adobe MAX 2007 being held in Chicago and it was kicked off with the General Session hosted by Kevin Lynch.  As with previous MAXâ€™s the general session is part sneak peek and part highlights of the new technologies/applications that Adobe and their customers are creating.</p>

<p>I am not going to focus too much on the general session, but more post notes about the sessions that I am attending.  I do want to mention a few things I learned at the general session but for now I be posting information I gleam from the sessions&#8230;</p>

<p>One of the cooler things I did see at the general session was a peek at the new Flash Player version 10, aka â€œAstroâ€.  Two features they are focusing on are text managment/manipulation and effects.
The new text features have much more granular control of text objects and full support for right to left languages.  This is a huge update because one of the hardest things to work with in the Flash Player is textual content.  In some of the projects I have worked on the solution was often to not let Flash handle the text and move the control back to the browser for displaying complex layout.</p>

<p>The other great thing about Astro is that they are rolling out a new language to allow custom filters and effects that can be applied to the Flash content.  These filters are similar to the existing filters such as blur, drop shadow, etc.  The language used is the same that drives AfterEffects effects and this will allow for much more high performance effects that are small and lightweight.</p>

<p>Internet stability has been spotty so I will try and post as I get steady connections.  There may be multiple posts at a time depending on when and where my connections actually talk with the network.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vivisectingmedia.com/2007/10/adobe-max-general-session-and-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
