<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Deitte.com</title>
<link>http://www.deitte.com/</link>
<description>A Mix of Flex and Brightcove</description>
<language>en</language>
<copyright>Copyright 2009</copyright>
<lastBuildDate>Mon, 08 Jun 2009 21:53:19 -0500</lastBuildDate>
<generator>http://www.movabletype.org/?v=4.24-en</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 


<item>
<title>Flash Builder 4: It&apos;s Fast</title>
<description><![CDATA[<p>I just did some stopwatch performance tests of <A HREF="http://blog.digitalbackcountry.com/2009/05/flash-builder-and-flash-catalyst-betas-now-available/">Flash Builder 4</A> against Flex Builder 3, using the same files that I did for the <A HREF="http://www.deitte.com/archives/2008/10/a_faster_flex_3.htm">faster Flex 3 SDK tests</A>.  Here are the results:</p>

<p><b>Build All, in seconds, after changing two UI classes</b><br />
Flex 3: 42.5 <br />
Flex 3 fast: 36 <br />
Flex 4: 38<br />
Flex 4 with libraries: 26.5 </p>

<p><b>Build All, in seconds, after changing a ModelLocator</b><br />
Flex 3: 47<br />
Flex 3 fast: 36.5<br />
Flex 4: 34<br />
Flex 4 with libraries: 26</p>

<p>The projects with libraries were very impressive.  For these admittedly simple performance tests, I'm seeing the best Flex 4 project as 70% faster than the regular Flex 3 project.</p>

<p>The "Flex 3 fast" and "Flex 4" results are so similar because some of the improvements are already in <A HREF="http://www.deitte.com/archives/2008/10/a_faster_flex_3.htm">Faster Flex 3 SDK</A>.  This was unexpected to me, so I ran a few more tests.  Sure enough, some more complicated compilations showed more of an improvement for Flex 4.</p>

<p>The "Flex 4 with libraries" test took advantage of the <A HREF="http://bugs.adobe.com/jira/browse/SDK-17077">library sharing</A> and other multiple project work that has gone into Flash Builder 4.  The project that I was building was divided into three library projects and one main project.  The library projects only have acyclical dependencies, which likely made the compilation easier.</p>

<p>More details on the test: the Flex 3 tests were done in Flex Builder 3 using 3.2 or the modified version of 3.2 from the faster Flex 3 SDK page.  The Flex 4 tests were done in the beta of Flash Builder 4.  The project was simply converted for Flash Builder 4, and only two simple changes to the code were needed to build the project.  I only reran two of the three tests from the Faster Flex SDK page for no good reason.  I ran each build a few times and averaged out the results.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/06/flash_builder_4.htm</link>
<guid>http://www.deitte.com/archives/2009/06/flash_builder_4.htm</guid>
<category>Flex</category>
<pubDate>Mon, 08 Jun 2009 21:53:19 -0500</pubDate>
</item>

<item>
<title>Image Effects in AS3</title>
<description><![CDATA[<p>If you want to know more about manipulating images in Flash, I have an excellent new book to recommend.  It's <a href="http://www.amazon.com/gp/product/1430218711?ie=UTF8&tag=deittecom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430218711">Foundation ActionScript 3.0 Image Effects</a> by Todd Yard, a coworker of mine at Brightcove.  </p>

<p>I was the technical editor of the book, and I really enjoyed reading it and learned a lot about a lot of AS3 APIs that I haven't used before.  It goes over the basic drawing API, blend modes, many other bitmap manipulations, Pixel Bender, the Flash Player 10 3D APIs, a custom (and newly open sourced) animation and effects library, text effects, video effects, and more that I'm sure I'm leaving out.  Outside of the book, there's the new library I just mentioned as well as a huge numbers of samples that can be used in Authoring or Flex/Flash Builder.</p>

<p><a href="http://www.amazon.com/gp/product/1430218711?ie=UTF8&tag=deittecom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430218711"><IMG src="http://deitte.com/image_effects_book.jpg"></a></p>

<p>This is in the same series (and a great followup) to Keith Peter's ever-popular <a href="http://www.amazon.com/gp/product/1590597915?ie=UTF8&tag=deittecom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1590597915">Making Things Move book</a>.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/05/image_effects_i.htm</link>
<guid>http://www.deitte.com/archives/2009/05/image_effects_i.htm</guid>
<category>Flex</category>
<pubDate>Mon, 25 May 2009 13:46:18 -0500</pubDate>
</item>

<item>
<title>The Demand for IFrames in Flex</title>
<description><![CDATA[<p>No matter what I've tried, the demand for iframes in Flex doesn't go away.  Recently there's been a number of interesting comments on an old post of mine about <A HREF="http://deitte.com/archives/2006/08/finally_updated.htm">Embedding HTML in a Flex application using an IFrame</A>.  Dennis wrote new instructions for <A HREF="http://www.deitte.com/archives/2006/08/finally_updated.htm#comment-46006">using the code in Flex Builder 3</A>, ariel linked to an issue with <A HREF="http://www.deitte.com/archives/2006/08/finally_updated.htm#comment-47050">Firefox zooming</A>, and Kedungwuluh linked to an <A HREF="http://www.deitte.com/archives/2006/08/finally_updated.htm#comment-47089">example application</A>.</p>

<p>All of these comments come after I've essentially stopped commenting on the iframe posts that I've written.  There's also some great alternatives, as linked in the <A HREF="http://deitte.com/archives/2006/08/finally_updated.htm">Embedding HTML post</A>, which have had more active development than my solution.  And most importantly, I've written <A HREF="http://www.deitte.com/archives/2008/07/dont_use_iframe.htm">Don't Use IFrames for HTML in Flex</A> which I prominently link to in the Embedding HTML post.</p>

<p>But my passive and active attempts at moving people away from the iframe post hasn't worked at all.  The post is consistently the most popular on this blog, getting about 3500 views a month, and the 159 comments keep growing.  Of course, writing all this new information isn't going to help, but I don't think it really matters.  Obviously the solution is good enough for a lot of people.  And there's a lot of people <A HREF="http://bugs.adobe.com/jira/browse/SDK-13740">still searching</A> for a really good solution for HTML in Flex.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/04/the_demand_for_iframes_in_flex.htm</link>
<guid>http://www.deitte.com/archives/2009/04/the_demand_for_iframes_in_flex.htm</guid>
<category>Flex</category>
<pubDate>Sat, 25 Apr 2009 09:49:34 -0500</pubDate>
</item>

<item>
<title>Boston Flash Platform User and Design Patterns and Beer at Brightcove Group</title>
<description><![CDATA[<p>The Flash platform user group at the Brightcove office has been going through a bit of an identity crisis lately.  The sessions used to be <A HREF="http://www.forestandthetrees.com/designPatterns/">focused on design patterns</A>, but lately we've been veering off into the general Flash platform territory.  This has led to some great talks, but it's a little confusing.  It can't be called the Boston Flash Platform Group, as this is an offshoot of the <A HREF="http://www.bfpug.com/">meeting in Brookline</A>.  So how about my name in the title of the post?  Everyone will remember BFPUDPBBG.</p>

<p>In any case, the group is always looking for good speakers, whether it's talking about design patterns, a new open source project you're working on, or anything else you can dream up about Flash and Flex.  Want to talk?  Send an email on to <A HREF="mailto:boston.flash.platform@gmail.com">boston.flash.platform@gmail.com</A>, and Sam Robbins (or if he's busy, Doug Martilla or me) will get back to you.</p>

<p>Want to learn more about the group?  Join the <A HREF="http://tech.groups.yahoo.com/group/bfpug/">mailing list</A>, which will also tell you about the meetings in Brookline.</p>

<p>We're always happy to welcome new people to the group, whether for one meeting or every month.  You'll always learn some new things, have some pizza and beer, and can join us at Characters after the meeting.  Check the mailing to make sure, but they almost always occur the first Wednesday of the month at 7pm.  They're at the Brightcove office, which is right near the Kendall Square subway at One Cambridge Center.  Just go inside the building and tell the security officer why you're there.  You can then go up to the 12th floor and someone will let you in.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/04/boston_flash_pl.htm</link>
<guid>http://www.deitte.com/archives/2009/04/boston_flash_pl.htm</guid>
<category>Flex</category>
<pubDate>Sun, 12 Apr 2009 16:57:55 -0500</pubDate>
</item>

<item>
<title>Bindable Getters and Getting Faster</title>
<description><![CDATA[<p>We had a "bring your questions" session at our last <A HREF="http://www.deitte.com/archives/2009/04/boston_flash_pl.htm">Boston Flash User Group meeting at Brightcove</A>, and I thought three of the items I answered would be helpful for more people to read.</p>

<p><b>Bindable Getters:</b> If you're creating a component for someone else to use, you don't have to expose a setter for a bindable property.  It's not very obvious that you can just expose a getter from <A HREF="http://livedocs.adobe.com/flex/3/html/databinding_8.html">the documentation</A>, but it's simple to do.  When you set up the getter, name the event for the Bindable property:</p>

<p><code>[Bindable(event="changeMyProp")]<br />
public function get myProp():String {<br />
&nbsp;&nbsp;return _myProp;<br />
}<br />
</code></p>

<p>Then when you set the value for the property, dispatch the named event.  That's it:<br />
   <br />
<code> _myProp = "my value";<br />
// dispatch the event so that bound listeners know about the change<br />
dispatchEvent(new Event("changeMyProp"));<br />
</code></p>

<p><b>Public MXML:</b> Also on the subject of creating components, it was asked whether one should choose MXML or ActionScript for a class that's being used as a component.  In general, I suggest to use ActionScript.  This is because of all the public variables that are exposed when you use MXML, since all of the UI elements set up in the XML are public.  This violates the <A HREF="http://en.wikipedia.org/wiki/Open/closed_principle">open/closed principle</A> and can be a problem for components that are used outside of a small project.</p>

<p><b>Fast and Stable:</b> If you've been unsure if you can use the <a HREF="http://www.deitte.com/archives/2008/10/a_faster_flex_3.htm">Faster<br />
Flex SDK</a> for your own project, it should make you feel better that it's being used to build the Brightcove players that run on the New Yorks Times and many other major websites.  So if you're concerned about the stability of the changes, I wouldn't worry about it.  It's also being used at Brightcove to build some very large Flex manager applications without any problems.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/04/bindable_getter.htm</link>
<guid>http://www.deitte.com/archives/2009/04/bindable_getter.htm</guid>
<category>Flex</category>
<pubDate>Sun, 12 Apr 2009 16:44:03 -0500</pubDate>
</item>

<item>
<title>I&apos;m on The Flex Show</title>
<description><![CDATA[<p>I'm on the latest episode of <A HREF="http://www.theflexshow.com/blog/index.cfm/2009/3/25/The-Flex-Show-Episode-70-Brian-Deitte-from-Brightcove">The Flex Show</A>, where I talk about making changes to the Flex SDK and the <A HREF="http://www.deitte.com/archives/2008/10/a_faster_flex_3.htm">Faster Flex 3 SDK</A>.  </p>

<p>It was a lot of fun to do the interview with Jeffry Houser and John Wilker, and I'm glad they gave me the opportunity to do this.  They've interviewed nearly everyone I read or admire in the Flex world, so make sure to check out the <A HREF="http://www.theflexshow.com/blog/">other podcasts</A> if you haven't already.</p>

<p>Thankfully they cut out the part where my phone rings and the other amusing parts.  Although I need to respond to one of those missing pieces: yes Juan Sanchez, I do like quesadillas.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/03/im_on_the_flex.htm</link>
<guid>http://www.deitte.com/archives/2009/03/im_on_the_flex.htm</guid>
<category>Flex</category>
<pubDate>Wed, 25 Mar 2009 22:35:33 -0500</pubDate>
</item>

<item>
<title>Flex SDK Hackery</title>
<description><![CDATA[<p>I presented at the Boston Flash Platform User Group (Brightcove office edition) tonight as a last-minute fill-in.  I put together the following presentation which gives details on making changes to the Flex SDK.  It doesn't have too much information in it, but people at the meeting asked for it to be posted for the links.  And it should fit in well with my upcoming interview on <A HREF="http://www.theflexshow.com/">The Flex Show</A>.</p>

<div style="width:425px;text-align:left" id="__ss_1134474"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/bdeitte/sdk-hackery?type=powerpoint" title="SDK Hackery">SDK Hackery</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=sdkhackery-090311203716-phpapp01&stripped_title=sdk-hackery" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=sdkhackery-090311203716-phpapp01&stripped_title=sdk-hackery" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-bbdecoration:underline;" href="http://www.slideshare.net/bdeitte">bdeitte</a>.</div></div>]]></description>
<link>http://www.deitte.com/archives/2009/03/flex_sdk_hacker.htm</link>
<guid>http://www.deitte.com/archives/2009/03/flex_sdk_hacker.htm</guid>
<category>Flex</category>
<pubDate>Wed, 11 Mar 2009 21:33:17 -0500</pubDate>
</item>

<item>
<title>U2&apos;s Flash Site</title>
<description><![CDATA[<p>In honor of U2 playing in Boston tonight, here's some emails between my wife and me today.  She's a big U2 fan and just found they're playing again in Boston in September.</p>

<p><b>Betsy wrote:</b></p>

<p>This is the stage- this is amazing!</p>

<p><A HREF="http://360.u2.com/">http://360.u2.com/</A></p>

<p><b>Brian wrote:</b></p>

<p>They need to work on their programming skills, got a Flash error in the debugging version of the Flash player.  :P</p>

<p>TypeError: Error #1009: Cannot access a property or method of a null object reference.<br />
        at Main/initSound()<br />
        at Main/init()<br />
        at Main/frame5()</p>

<p><b>Brian wrote:</b></p>

<p>Well that's cool though, that's some good Flash 3D.  I bet they are using Papervision3D, what everyone is using for 3D in Flash.</p>

<p><b>Betsy wrote:</b></p>

<p>Could we talk about U2?<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/03/u2s_flash_site.htm</link>
<guid>http://www.deitte.com/archives/2009/03/u2s_flash_site.htm</guid>
<category>Flex</category>
<pubDate>Wed, 11 Mar 2009 21:20:20 -0500</pubDate>
</item>

<item>
<title>Fighting Brain Crack: Goodbye swclibrary.com</title>
<description><![CDATA[<p>I read <A HREF="http://www.ourstartupstory.com/fighting-brain-crack/">John Wilker's post</A> on fighting brain crack, getting rid of the ideas that stick around in your head forever even though nothing is done with them.  Immediately one thing came to mind: swclibrary.com</p>

<p>I registered this domain name, along with swclib.com, in October of 2005.  I was working on the Flex team at the time, and my development of compc and asdoc led me to see the need for a good component site for Flex.  I was envisioning something like <A HREF="http://scalenine.com/">ScaleNine</A> (which wasn't around yet) for SWCs.</p>

<p>Through the years, I've held on the domain name and some notes on the idea.  And through the years, other components sites have come along:</p>

<ul><li><A HREF="http://flexbox.mrinalwadhwa.com/">FlexBox</A>, which isn't being updated anymore but which still brings in a surprising number of hits to my blog for the HTML component.</li>
<li><A HREF="http://www.adobe.com/cfusion/exchange/index.cfm?from=1&event=productHome&s=3&o=desc&exc=15">Adobe Flex Exchange </A>, which has a grab-bag of components, themes, and applications.</li>
<li><A HREF="http://code.google.com/p/flexlib/">FlexLib</A>, which isn't really a component site but a group of open source components that a lot of people use.</li>
<li><A HREF="http://flex.org/components/">The flex.org component site</A>, which probably has the best list but which needs some interface love.</li></ul>

<p>None of the sites felt quite right to me, so I kept the idea around.  Then another big change to Flex got me thinking about it again, as the <A HREF="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Component+Architecture">Gumbo component model</A> will bring about a whole new set of components.</p>

<p>I still had it somewhere in my head when I recently saw Jeffry Houser's <A HREF="http://www.flextras.com/index.cfm">FlexTras</A>, but the idea is so far back there that the idea didn't move an inch.  </p>

<p>So it's time to come clean with myself.  My off-work computer time has been full of Brightcove dabbling or blogging, and I plan to keep it that way.  The domain names won't be renewed, I'll delete all my notes, and I'll keep fighting the good fight against brain crack.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/02/fighting_brain.htm</link>
<guid>http://www.deitte.com/archives/2009/02/fighting_brain.htm</guid>
<category>Flex</category>
<pubDate>Sun, 22 Feb 2009 11:20:27 -0500</pubDate>
</item>

<item>
<title>Flex 4 Compiler Speed</title>
<description><![CDATA[<p>The piece that I've been most excited about in Flex 4 is the faster Flex compiler.  So I was interested to see <A HREF="http://www.duvos.com/?p=47">Enrique's post</A> on some of the speedups. To quote, "The performance test suite went from full compiling in four minutes with Flex 3 to two minutes with Flex 4."  I expect it to be even faster when the final version is done, and this will be immensely helpful to large projects, like the ones I work on at Brightcove.</p>

<p>Another article on the subject in the <A HREF="http://opensource.adobe.com/wiki/display/flexsdk/Notes+on+Compiler+Performance+Improvements">Notes on Compiler Improvements</A> from the <A HREF="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo#Gumbo-DocumentsandSpecifications">Gumbo specs</A>.  It's a low-level look from a compiler guru at Adobe who's looking into how to speed up the ActionScript compiler.  Most of it won't be of interest if you haven't looked into the compiler source code, but the graphs at the end provide some insight into the progress.</p>

<p>For some Flex 3 compiler information on this blog, you can check out <A HREF="http://www.deitte.com/archives/2008/10/a_faster_flex_3.htm">A Faster Flex 3 SDK</A> and <A HREF="http://www.deitte.com/archives/2008/06/compiler_resources.htm">Flex Compiler Resources</A>.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/02/flex_4_compiler.htm</link>
<guid>http://www.deitte.com/archives/2009/02/flex_4_compiler.htm</guid>
<category>Flex</category>
<pubDate>Sun, 15 Feb 2009 22:30:35 -0500</pubDate>
</item>

<item>
<title>Comments Are Off (Temporarily)</title>
<description><![CDATA[<p>Sorry if you're coming here to comment between January 14th and February 2nd, as comments will be turned off.  I still get a few spammers who sneak through ever week, and I'd rather not let them get away with it.  So I'll be turning off the comments as I go get married and spend some time in Costa Rica.  It's nice get off the grid for a bit, something I haven't done for a few years.  Not that I'd have much of a choice in the matter- I have a suspicion that my soon-to-be wife would have a bit of a problem with me posting to the blog in the next week...</p>

<p>While I'm away, you should see some articles appear on the <A HREF="http://help.brightcove.com/developer/">Brightcove developer center</A> from me.  There will be one that gives an overview of the advertising SDK as well as one on advertising in custom templates.  <br />
</p>]]></description>
<link>http://www.deitte.com/archives/2009/01/comments_are_of.htm</link>
<guid>http://www.deitte.com/archives/2009/01/comments_are_of.htm</guid>
<category>Video</category>
<pubDate>Tue, 13 Jan 2009 01:08:16 -0500</pubDate>
</item>

<item>
<title>A Faster Flex 3.2 SDK</title>
<description><![CDATA[<p>I've updated the post <A HREF="http://www.deitte.com/archives/2008/10/a_faster_flex_3.htm">A Faster Flex 3 SDK</A> with the files for Flex 3.2.  If you're using Flex 3 and Flex Builder, I'd suggest checking out these changes for a significant performance boost.  </p>

<p>My apologies to those who were patiently waiting for these changes to be ported to Flex 3.2.  It's been a little busy here, between the holidays, some interesting work for Brightcove, reviewing a book, and the little fact that I'm getting married in three weeks.  Happy Holidays to everyone!<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2008/12/a_faster_flex_3_1.htm</link>
<guid>http://www.deitte.com/archives/2008/12/a_faster_flex_3_1.htm</guid>
<category>Flex</category>
<pubDate>Sat, 27 Dec 2008 12:34:38 -0500</pubDate>
</item>

<item>
<title>Tools for Brightcove Developers</title>
<description><![CDATA[<p>With the recent news about the <A HREF="http://www.techcrunch.com/2008/12/07/two-months-after-release-brightcove-announces-nearly-100-api-partners/">Brightcove API partners</A>, I wanted to go over some of the tools for those API partners and more importantly, for developers creating websites using Brightcove.</p>

<p><b>Features</b></p>

<p>There's four major areas in Brightcove 3 to focus on: the <A HREF="http://help.brightcove.com/developer/docs/mediaapi/media-API-getting-started.cfm">media API</A>, player XML (<A HREF="http://help.brightcove.com/developer/docs/playerapi/beml-intro.cfm">BEML</A>), the <A HREF="http://help.brightcove.com/developer/docs/playerapi/player-overview.cfm">player API</A>, and the <A HREF="http://help.brightcove.com/developer/docs/advertising/integrations.cfm">ad API</A>.  There's a lot more information in the linked documentation than I could mention here, and you should be able to get a good idea there of how you can manipulate players, videos, playlists, etc.</p>

<p>I've been working a lot on the ad APIs, and I'm always happy to answer questions on them (just see the next section).  We've doing a lot to make it easier to integrate new ad platforms with Brightcove, which you can see in the <A HREF="http://help.brightcove.com/developer/docs/advertising/ad-translator.cfm">ad translator</A>  and <A HREF="http://help.brightcove.com/developer/docs/advertising/ad-swf.cfm">ad SWF</A> documentation.</p>

<p><b>Community</b></p>

<p>Brightcove has been working a lot on the documentation and community on its site lately.  You can see this in the <A HREF="http://help.brightcove.com/developer/">development help</A>, which includes links to the new <A HREF="http://community.brightcove.com">forums</A> and <A HREF="http://help.brightcove.com/developer/docs/index.cfm">development documentation</A>.  There's also still the Yahoo group <A HREF="http://tech.groups.yahoo.com/group/brightcove-dev/">brightcove-dev</A>.</p>

<p><b>Recent Changes</b></p>

<p>We continue to release new updates that include changes that are helpful for developers.  On help.brightcove.com, you can get a general overview of the changes in <A HREF="http://help.brightcove.com/publisher/updates/index.cfm#obiwan">Brightcove 3.1</A> and <A HREF="http://help.brightcove.com/publisher/updates/index.cfm#obiwan1">Brightcove 3.1.1</A></p>

<p>Some of the notably recent changes include <A HREF="http://help.brightcove.com/publisher/docs/publishing/templates.cfm">additional player templates</A>, <A HREF="http://help.brightcove.com/developer/docs/playerapi/player-SWC.cfm">a player SWC</A>, and <A HREF="http://tech.groups.yahoo.com/group/brightcove-dev/message/4065">new player logging</A>.</p>

<p><b>Thoughts?</b></p>

<p>So what do you think is missing above?  What developer tools does Brightcove need to work more on?<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2008/12/tools_for_brigh.htm</link>
<guid>http://www.deitte.com/archives/2008/12/tools_for_brigh.htm</guid>
<category>Flex</category>
<pubDate>Sun, 21 Dec 2008 15:47:07 -0500</pubDate>
</item>

<item>
<title>Day 3 at MAX</title>
<description><![CDATA[<p>Here are my notes from the third and final day at MAX. It includes info on searchable SWFs, Google working on external media in SWFs, Cairngorm tips, new Cairngorm directions, the Marshall Plan, and Salesforce services. </p>

<p><b>Flex Framework Features to Support Large Applications</b></p>

<p>The Marshall Plan in Flex 3.2 allows an app to utilize sub applications built with different versions of Flex.  </p>

<p>Limitations- needs full sub applications, styles aren't marshalled, resource bundless aren't marshalled, drag and drop requires extra work, mouse and key events need to be listened to differently, sub applications must load their own RSLs, need to create a different domain to use AMF, doesn't prevent different sub applications from reach into each other, and can sort of create subdomain security with a lot more limitations.</p>

<p>My take-away from this session was that I won't be using the Marshall Plan for any applications anytime soon.  But it was still very interesting to hear more about ApplicationDomain and SecurityDomain.  I thought that ApplicationDomains were very similar to Java ClassLoaders, but I now see the distinctions.</p>

<p><b>The Searchable SWF File</b></p>

<p>Previous solutions for a searchable SWF were workarounds using swf2html or attaching xml to a page.  Adobe and Google have worked together  to make SWFs show up in Google results.</p>

<p>A special version of the Flash Search Player (Ichabod) steps through visual states and gets the text.  It only finds text fields that would actually be shown in the display list.  Ichabod must be fast, so it executes faster than real time and doesn't render.  Since it must be deterministic, there's no network access, sockets, or threads (sound).  Thinking about providing a version of Icabod that's available to everyone to allow you to search SWFs yourself.  </p>

<p>If you use SWFObject or Adobe detection kit to embed, your SWF will be found.  Other Javascript embeds may not be found, but they are looking into improving this.</p>

<p>If you load in any external media, this currently won't be used within the SWF.  But Adobe has fixed their side of this issue, and it just needs some work from Google to work correctly.  It's expected that when Loader.load() is used, Google will fetch or get a cached version of the call.  An example of this from the Adobe side was used with the Flex store.</p>

<p>What's next, in no particular order:<br />
1. Dealing with external media, as mentioned above.  <br />
2. Deep linking.  It doesn't currently deal with unique URLs for different states in a SWF, but they're trying hard to get this done.<br />
3. Partner with Yahoo and other search engines.<br />
4. Getting accessibility text.<br />
5. Thinking about getting metadata from progressive download videos, especially with the work at Adobe for getting text from video.</p>

<p>It's possible to use Ichabod for unit tests if this player gets released.  It could be extremely helpful for this, since the tests would run much quicker.</p>

<p>The questions at the end turned into a session on how to try to thwart the system.  I'm not going to post the suggestions that came out of it, but it was pretty creative.</p>

<p><b>Building Business Applications in the Cloud with Force.com and Adobe</b></p>

<p>He listed about 40 things that you need to have to be a platform as a service- data center, disaster recovery, sharing, integration, authentication, API, workflow, monitoring, updgrades, backup, etc, etc.  A good list to show all the things that you may not think about when you do a service yourself.  "It's more than just imaging a server and putting it up in the cloud"</p>

<p>Some interesting numbers: 150M+ transactions daily with an average speed of 210ms.  ~37% global deployments.  Allow people to create any schema they want: 8,700,000+ schema edits.  160,000 SQL statements per second.  1.75 billion API calls per month.  28+ billion total API calls.</p>

<p>Created an ActionScript library for using salesforce services.  They have a SWC which can be used to query salesforce.</p>

<p>The web services have 1 noun and 19 core verbs (and 4 verbs constitute 90% of usage).  Batch based API.  Architected for high volume and high velocity.  They create revisions of their API and are now at the 14th generation.  He says that people have integrations that have been running for 8-10 years which have barely changed at all.</p>

<p>Unrelated to the above, but which I heard after the Salesforce session, it that the Flex framework RSL is cached by over 50% of users in the US.  I'm not sure how this was calculated, if it refers to a specific RSL, etc.  But that's surprisingly high to me.</p>

<p><b>RIA Development with Cairngorm: Tips from the Experts</b></p>

<p>This started out with a general explanation of Cairngorm, which I didn't take notes on.  Lots of great info like this is available on cairngormdocs.org</p>

<p>They showed off a refactored version of the Cairngorm Store.  As part of this and in the middle of the talk, a lot of excellent suggestions were given for working with Cairngorm.  Here's some of them:</p>

<p>1. The <A HREF="http://weblogs.macromedia.com/paulw/archives/2007/10/presentation_pa_3.html">presentation model</A> works well for large applications.<br />
2. Can use the model for functions which are called from the view and dispatch events.  This function can send a result handler through the event and handle the result itself (instead of setting the model directly in the command).<br />
3. Models should be passed down to components (instead of calling ModelLocators directly). Call ModelLocator.getInstance() in the view only once!  Do everything else with data binding. <br />
4. Responders should be used used to handle service requests.  It can be helpful to have a base class to implement a common fault method.<br />
5. Anti-pattern: the fat controller.  Group controllers in functions or create sub-controllers.<br />
6. Anti-pattern: model locator landfill.  The model locator should not store properties.  Group properties into clases, ie presentation models.</p>

<p>They also informally announced the Cairngorm Committee, which will guide the future of Cairngorm.  I'm happy to say that I'm on this committee.</p>

<p>It's "all about the timing" for when to use Cairngorm, different project structures, different patterns.  It's not about doing everything up front, which can mean that business value can't be shown quickly.  But it's also not good to wait too long and cause even more pain, either.</p>

<p>They're thinking about using inversion of control instead of ModelLocator- something for the community to think about.</p>

<p>They demo'd the <A HREF="http://opensource.adobe.com/wiki/display/cairngorm/Plugin">Cairngorm Plugin</A> which creates commands and events easily.<br />
</p>]]></description>
<link>http://www.deitte.com/archives/2008/11/day_3_at_max.htm</link>
<guid>http://www.deitte.com/archives/2008/11/day_3_at_max.htm</guid>
<category>Flex</category>
<pubDate>Thu, 20 Nov 2008 13:31:07 -0500</pubDate>
</item>

<item>
<title>Day 2 at MAX</title>
<description><![CDATA[<p>Here are my notes from the second day at MAX.  It includes info on the keynote, development best practices with Flex, Flash security, RTMFP, and speech to text.</p>

<p><b>General Notes</b></p>

<p>A lot of people were interested in the basics of Brightcove but didn't know a lot about the technology.  I've been meaning to write more about certain areas for awhile- advertising, BEML, a few other things- and this reminds me to do this.</p>

<p>I got a lot of comments on the <A HREF="http://www.deitte.com/archives/2008/10/a_faster_flex_3.htm">compiler update I've released</A>, and I appreciate all the comments on it.  But I want to make clear again that I didn't make the compiler changes myself!  I've merged the changes from the Flex compiler team- thank Paul Reilly and the rest of that group for doing the real work.  </p>

<p><b>Keynote</b></p>

<p>Besides making me go slightly deaf with the sound system, they showed off a lot of new features in CS4 and other products.  They showed off a literal copy and paste from CS4 applications to Catalyst which was then turned into components.   This round tripping is done through FXG support in CS4 applications and Catalyst.</p>

<p>I saw Alchemy again as they showed the following demos in Flash: open SSL encryption, decoding of Ogg Vorbis, decoding of RAW images, showing PDFs in Flash, Doom, and Mario.  The showing PDFs is particularly interesting for the future of the Flash player and the Adobe Reader.  I wonder if some of PDF viewing will switch over to the Flash player?</p>

<p>On the .NET front in Flex, they have a partner plugin to Visual Studio and a possible C# version of BlazeDS.</p>

<p>In addition to multi-bitrate and RTMFP, they showed off an interesting live feature in FMS.  You can now record a stream and stream it live at the same time to have a DVR-like experience.</p>

<p><b>Developer Best Practices With Flex</b></p>

<p>This session was about developer best practices with Flex with a particular focus on using Catalyst.  There was quite a bit a talk about general engineering practices that should be used in Flex as they should be used elsewhere: use coding standards, comment code, and use design patterns.  Nothing too surprising in this part of the talk other than advocating code behind, which I don't think works very well for Flex.</p>

<p>They talked about various things that developers should do to prepare their projects for Catalyst development, such as applying metadata to files and laying things out properly.  There will be a lot more code-level interaction with designers when Catalyst is used.</p>

<p>One more interesting note, something which I didn't know yet, is that Catalyst is built on Eclipse.</p>

<p><b>Flash Security: Why and How</b></p>

<p>This was an explanation of content restrictions with the Flash Player.  Deneb had a few overriding rules for Flash security: use least privilege, validate input, deploy HTTPS consistently, prototype early, and keep track of security changes.</p>

<p>You need to call Security.allowDomain() if a SWF loads from another domain.  This allows the SWF you are loading to call things within the parent SWF.  The wrong way to do this is to call Security.allowDomain("*").  "There are rare times when you might want to do this."  </p>

<p>You need to specify allowScriptAccess or allowNetworking in the HTML to allow your SWF to script the HTML from a different domain.  allowScriptAccess set to never isn't used anymore because there really isn't a way in Flash to stop same domain communication between the SWF and a browser.</p>

<p>Data loading requires permission because it's data that the user can access but not necessarily data that's publically available.  So a cross-domain policy file is required so that the server gives permission for the data to go elsewhere.  Flash is also the first client to allow direct cross-domain data loading, although browsers are looking into similar abilities in HTML5.</p>

<p>You must use a socket policy file with any socket connection (including the same domain).</p>

<p>You need to specify allowInsecureDomain() to allow HTTP connection when HTTPS is being used in the main SWF.  This can cause a man in the middle attack.  Allowing HTTP content in HTTPS is even worse.</p>

<p><b>Sneak Peeks</b></p>

<p>I saw RTMFP <A HREF="http://www.deitte.com/archives/2008/11/day_1_at_max.htm">yesterday</A>, but there was a live demo of the many-to-many feature in progress today.  RTMFP application-level multicast allows for many-to-many broadcasting, live streaming from one client to many clients without using a server.</p>

<p>Nitro is a platform to create Flash widgets which can be distributed to desktop, Web, TV, and mobile.</p>

<p>Content Intelligence Toolkit can find different scenes in a video and give information about each scene in metadata: lighting, activity, etc.  Includes tracking of faces, and most impressively, speech to text of the video. <br />
</p>]]></description>
<link>http://www.deitte.com/archives/2008/11/day_2_at_max.htm</link>
<guid>http://www.deitte.com/archives/2008/11/day_2_at_max.htm</guid>
<category>Flex</category>
<pubDate>Wed, 19 Nov 2008 03:25:16 -0500</pubDate>
</item>


</channel>
</rss>