﻿<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>Hamster Thoughts</title>
	<updated>2012-05-28T06:14:43Z</updated>
	<id>http://blog.poweredbyhamsters.com/atom.aspx</id>
	<link href="http://blog.poweredbyhamsters.com/atom.aspx" rel="self" type="application/rss+xml" />
	<link href="http://blog.poweredbyhamsters.com" rel="alternate" type="application/rss+xml" />
	<generator uri="http://app.onlinequickblog.com/" version="2.6.8">Quick Blogcast</generator>
	<entry>
		<title>Flex Shapes</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/11/flex-shapes.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-11:2d4d05e4-7857-449c-9294-5f722c38a8df</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Flex" />
		<updated>2007-10-11T19:11:00Z</updated>
		<published>2007-10-11T19:11:00Z</published>
		<content type="html">&lt;DIV&gt;We have been having a discussion on primitive shapes in Flex in our 615 Flex discussion group.&amp;nbsp; As of now, if you want shapes (e.g. circles, rectangles, etc) in Flex you have a few options:&lt;BR&gt;&lt;BR&gt;1. Make a&amp;nbsp;circle&amp;nbsp;vector image or SWF in Flash, then load it using an &amp;lt;mx:Image /&amp;gt;&amp;nbsp;loader or something similar&lt;BR&gt;2. Draw the circle using ActionScript code in a function, optionally as a component&lt;BR&gt;3. Use the primitive shape&amp;nbsp;classes developed by Jason Hawryluck&amp;nbsp;(see below)&lt;BR&gt;4. Wait till Flex 4 when they introduce the new native&amp;nbsp;shapes classes, which replace option 3 above&amp;nbsp;(e.g. &amp;lt;mx:Circle /&amp;gt;, &amp;lt;mx:Rectangle /&amp;gt;, etc)&lt;BR&gt;&lt;BR&gt;The primitives classes are just custom components that eventually use the drawing API internally, but allow you to instantiate them into your app as MXML tags.&amp;nbsp; If you want, they are focusable just like normal widgets.&amp;nbsp; Adobe is currently set to introduce their own version of these in Flex 4.&amp;nbsp; In the long meantime I use these primitives to easily get what I want.&amp;nbsp; There is even a &lt;A href="http://www.3gcomm.fr/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html" target=_blank&gt;Primitives Style Explorer&lt;/A&gt;&amp;nbsp;that allows you customize a primitive, then copy/paste the MXML formatted tag into your app.&amp;nbsp; Check out&amp;nbsp;&lt;A href="http://flexibleexperiments.wordpress.com/2007/03/14/flex-20-primitive-explorer/" target=_blank&gt;this link&lt;/A&gt; for the original post about these classes.&lt;BR&gt;&lt;BR&gt;Since these components are not part of the Flex SDK, you need to get the the &lt;FONT face="Courier New"&gt;com.Primitives&lt;/FONT&gt; package&amp;nbsp;of source files and place them in to your project.&amp;nbsp; I am not sure if there is a SWC that contains the compiled classes, I just do what the author suggests and right-click the style explorer, then click View Source to get the source classes.&lt;BR&gt;&lt;BR&gt;Now for a sample&amp;nbsp;using the gear primitives.&amp;nbsp; My buddy and fellow 615 Flexer Byron will serve nicely as the demo.&amp;nbsp; We will make gears of his brain his and report on his status (which of course are the two things he claims keep him going).&amp;nbsp; Check it out &lt;A href="http://www.poweredbyhamsters.com/sample-code/flex/gear-tester/GearTest.swf" target=_blank&gt;here&lt;/A&gt;.&amp;nbsp;&amp;nbsp; Right-click to view source.&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Nashville Microsoft Event</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/04/nashville-microsoft-event.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-04:246dae35-b55b-4fba-a503-09d240c1fca3</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Flex" />
		<category term="Silverlight" />
		<updated>2007-10-05T00:36:00Z</updated>
		<published>2007-10-05T00:36:00Z</published>
		<content type="html">&lt;DIV&gt;Just got back from the MAX 2007 conference today.&amp;nbsp; Stepped off the plane and drove over to meet my co-workers at Opry Mills for the 4 hour Microsoft Event regarding Silverlight ... or so we thought.&amp;nbsp; I think the speaker spent 30-45 minutes on Silverlight.&amp;nbsp; The rest was on LINQ (which is actually pretty cool) and Windows Communication Framework (JMS anyone?).&lt;BR&gt;&lt;BR&gt;Anyway, none of us came away overly impressed.&amp;nbsp; I do think Silverlight has potential, I am just not sure to what degree it will compete.&amp;nbsp; On the one hand, it is MS, a world class tool development shop.&amp;nbsp; You know eventually the tool will rock for developers (who knows, maybe even designers).&amp;nbsp; But after the session was over I spoke to the speaker and mentioned how far ahead I felt Adobe was with Flex, and he told me they only had like 3-5 guys on the tool team atm.&amp;nbsp; Huh?&amp;nbsp; I don't know, he made it sound like it was a couple of guys' pet project.&amp;nbsp; David (co-worker) made a good point...could they just be&amp;nbsp;waiting to see what sort of interest level develops?&lt;BR&gt;&lt;BR&gt;They guy did say something like, "Ignore the marketing speak, Silverlight IS here to compete with Flash."&amp;nbsp; He showed several features that were similar to where Flex is/may be going (see &lt;A href="http://blog.poweredbyhamsters.com/2007/10/03/flex-roadmap-part-i.aspx"&gt;Flex Roadmap Part I&lt;/A&gt;&amp;nbsp;and &lt;A href="http://blog.poweredbyhamsters.com/2007/10/03/flex-roadmap-part-ii.aspx"&gt;Flex Roadmap Part II&lt;/A&gt;).&amp;nbsp; Specifically, the fact the there are separate design and developments tools that can work off of the same project, and that the design tool generates the components using shapes and other graphical elements.&amp;nbsp; He also showed of the HD video capabilities that were "superior" to Flash (he&amp;nbsp;was not aware of the&amp;nbsp; announcements at MAX &lt;img src="http://blog.poweredbyhamsters.com/emoticons/smile.png" border="0" /&gt;&lt;BR&gt;&lt;BR&gt;Several people asked about components in Silverlight.&amp;nbsp; He indicated the Silverlight component toolkit was going to take care of this.&amp;nbsp; This is sort of like how it is with Flex components.&amp;nbsp; The language and installable runtime itself only defines the building blocks for components.&amp;nbsp; No component library comes&amp;nbsp;down with the runtime.&amp;nbsp; It is up to the designer/developer to include what he/she wants.&amp;nbsp; Also, after the session I asked him more about components.&amp;nbsp; He indicated that when the release version of Silverlight 1.1 comes out (the C#/full CLR runtime version that is in alpha mode right now) the component toolkit should be pretty rich.&amp;nbsp; I think at this stage we just have to sort of wait and see.&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Flex Roadmap Part II</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/03/flex-roadmap-part-ii.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-03:39686514-d535-4df9-9732-f8d17e848cb4</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-04T02:18:00Z</updated>
		<published>2007-10-04T02:18:00Z</published>
		<content type="html">&lt;DIV&gt;After the Flex Roadmap session I overheard some personal Q&amp;amp;A time between a developer and the speaker.&amp;nbsp; The developer indicated (and I made the association just as he said it) that this new style they were expirementing with is essentially what Microsoft is doing in WPF and Silverlight (WPF/E) is.&amp;nbsp; The speaker said it was definately similar.&lt;BR&gt;&lt;BR&gt;The last time I looked at the Silverlight stuff I kept wondering where all the controls were.&amp;nbsp; The thing is, they already have the simple shapes that Flex is talking about.&amp;nbsp; You just draw in MS Expression and it generates XAML Graphics&amp;nbsp;(part of what Thermo will do).&lt;BR&gt;&lt;BR&gt;The developer brings up an interesting point, however, that the speaker seems to take to heart (they even exchange business cards over the discussion).&amp;nbsp; Basically, you can come at this component design&amp;nbsp;from&amp;nbsp;two angles.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;Angle 1 is designing several rolled up components and chosing to expose certain properties.&lt;BR&gt;Angle 2 is the new design, making the view completely configurable/editable in a large hierarchical grouping of Graphics, marked up and editable in XML.&lt;BR&gt;&lt;BR&gt;The drawback of Angle 1 is exactly what they were saying in the session, that they have to guess what the developers will want to mess with in order to expose them.&amp;nbsp; However, there is positive side to this approach,&amp;nbsp;which is of course the weakness of Angle 2.&amp;nbsp;&amp;nbsp;The weakness, as stated by this developer, is that often times people just want to do something simple, like change the rollover color of&amp;nbsp; a row in a list.&amp;nbsp; The XML markup of the view for a list is now so freakining huge and has&amp;nbsp;XML attributes for color everywhere that it becomes a massive undertaking to find and tweak one or two little things.&lt;BR&gt;&lt;BR&gt;In fact, this developer stated they actually come full circle and write some code in WPF to expose a few of the most commonly changed properties on the now super configurable view.&lt;BR&gt;&lt;BR&gt;Interesting stuff.&amp;nbsp; Hopefully the Flex team comes up with a good solution.&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Flex Roadmap Part I</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/03/flex-roadmap-part-i.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-03:bb39da77-c434-4d0d-a10c-d089223d3ddd</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-03T22:45:00Z</updated>
		<published>2007-10-03T22:45:00Z</published>
		<content type="html">&lt;DIV&gt;This was an interesting session from a few different points.&amp;nbsp; First the notes:&lt;BR&gt;&lt;BR&gt;- advisory note: everything shown&amp;nbsp;is in expiremental phase&lt;BR&gt;&lt;BR&gt;- short recap for those that missed Thermo sneak&lt;BR&gt;- they indicate the Flex team is excited about Thermo&lt;BR&gt;- splitting into two teams, one focused solely on development features (Flex), others focused on design features (Thermo)&lt;BR&gt;&lt;BR&gt;- recap of where Flex is atm -&lt;BR&gt;- designers need freedom (drawing rounded rectangles, setting alphas on everything, etc)&lt;BR&gt;- Flex SDK focuses on components&lt;BR&gt;- therefore we have a high level and very low level (programmatic drawing), but nothing in between&lt;BR&gt;- enter MXML Graphics&lt;BR&gt;&lt;BR&gt;- MXML Graphics&amp;nbsp;-&lt;BR&gt;- simple shapes,&amp;nbsp; complex paths, masking, filters, blend modes, etc all with scale 9 support&lt;BR&gt;- should be run-time editable, making it easy to animate&lt;BR&gt;- focused on performance&lt;BR&gt;- need ability to trade off&amp;nbsp;runtime editablity&amp;nbsp;against memory and speed&lt;BR&gt;&lt;BR&gt;- Re-evaluation of&amp;nbsp;Framework component design -&lt;BR&gt;- currently a problem&amp;nbsp;with components, that goes like this:&lt;BR&gt;- they expose certain styleable props of a button&lt;BR&gt;- folks request that the button's label&amp;nbsp;have the alpha settable&lt;BR&gt;- they expose, build, test, deploy&lt;BR&gt;- works great, then folks request&amp;nbsp;that the button's&amp;nbsp;corners not be rounded (or something)&lt;BR&gt;- problem predicting what folks want to do with the views&amp;nbsp;of components&lt;BR&gt;&lt;BR&gt;- further, current code is complex&lt;BR&gt;- e.g. Button is 2200 lines of code&lt;BR&gt;&lt;BR&gt;- enter true MVC&amp;nbsp;(Model View Controller) separation&lt;BR&gt;- model -&amp;nbsp;at its core, what does this component need to expose prop wise (e.g. the label for Button, that is it)&lt;BR&gt;- controller - event handling for mouse/key input, but just with/respect to setting&amp;nbsp;current states and events&lt;BR&gt;- view -&amp;nbsp;should be completely definable just using MXML&lt;BR&gt;&lt;BR&gt;- big advantages&lt;BR&gt;- can complete alter the&amp;nbsp;look of a component, more so than is possible today&lt;BR&gt;- no changes to any controller code, it is still a button&lt;BR&gt;- becomes VERY easy (demo was cool) to alter component's look&lt;BR&gt;&lt;BR&gt;- demo -&lt;BR&gt;-&amp;nbsp;again shows old button code, 2200&amp;nbsp;LOC&lt;BR&gt;- shows new button code&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 20 lines in model&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- controller code&amp;nbsp;maybe a 2-300 LOC&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- view is all MXML Graphics and states&lt;BR&gt;- alters the MXML view of the component and immediately can make very cool looking buttons&lt;BR&gt;&lt;BR&gt;- repeats the demo process with scroll bars and lists&lt;BR&gt;- with scrollbar, some things are defined as optional&lt;BR&gt;- for instance tweaks view of a scrollbar to have no buttons (thumb and track only)&lt;BR&gt;- with list, makes very different animated looking lists, accordians, etc with minimal and frankly easy to understand and implement&amp;nbsp;changes to MXML&lt;BR&gt;&lt;BR&gt;- near the end of the session folks starting commenting how cool this whole thing is&lt;BR&gt;- a few begin to wonder&amp;nbsp;why they should even consider Flex Builder 3 at this point&lt;BR&gt;- the speaker notes &lt;BR&gt;a) this is still expiremental&lt;BR&gt;b) they are committed to backward compatibility, so components will work in this new design&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Building Stunning Flex Apps</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/03/building-stunning-flex-apps.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-03:8f349af2-ff86-4ae8-8701-b88bec403e79</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-03T19:31:00Z</updated>
		<published>2007-10-03T19:31:00Z</published>
		<content type="html">&lt;DIV&gt;There was a hands on session earlier today, but nothing much to report from that.&amp;nbsp; Here are some notes from this session:&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;-&amp;nbsp;recap on&amp;nbsp;CSS styling Flex&lt;BR&gt;- recap on skinning in Flex&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- short discussion&amp;nbsp;on&amp;nbsp;Scale 9 skinning&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- scalenine.com - on CCA license (use at will with credit to&amp;nbsp;authors)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- flex exchange&amp;nbsp;(beta) - licenses vary&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- short discussion on programmatic skinning:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- most Flex default L&amp;amp;F is currently using programmatic skinning&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- can define new style props on skins&amp;nbsp;(allows single skin to take on different appearance)&lt;BR&gt;&lt;BR&gt;- standard skinning steps&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- create art&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- export art in Flex friendly format (Flash, SVG, PNG, etc)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- create Flex CSS to attach skins&lt;BR&gt;&lt;BR&gt;- Flex Skin Design extensions&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;make skinning easier&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- new for Flash CS3, Photoshop CS3, Fireworks CS3, Illustrator CS3&lt;BR&gt;&lt;BR&gt;- Flex Builder 3 makes importing artwork and CSS setup much easier&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- new import artwork wizard&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- imports and generates CSS code&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- can be viewed immediately in CSS design mode and have styles tweaked&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Scale 9 grid can be edited in CSS design mode (needed for raster images)&lt;BR&gt;&lt;BR&gt;- discussion on difference between skin parts and skin states&lt;BR&gt;- each skin part can have a skin state (e.g. scrollBar's thumb up state, down state, etc)&lt;BR&gt;- transitions can be defined between each state&lt;BR&gt;&lt;BR&gt;- in Flash, additional keyframes can be added that are transitions&lt;BR&gt;- the names defines the transition (e.g. up-over:start, up-over:end)&lt;BR&gt;- wildcards are support&lt;BR&gt;- an example of using this would be to fade a color into a new color when going to over state&lt;BR&gt;- can define to not define the reverse transition and Flash will just play reverse&lt;BR&gt;&lt;BR&gt;- in CSS design view, under global, can set a Font to a non-standard Font and now check embed&lt;BR&gt;- note to be sure of legal issues of embedding a font&lt;BR&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>MAX Event part</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/max-event-part.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:aa05d803-a2b5-4673-bd3e-eb9b9b526a3e</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-03T02:36:00Z</updated>
		<published>2007-10-03T02:36:00Z</published>
		<content type="html">&lt;DIV&gt;After the Sneaks session was a "back in time" party.&amp;nbsp; We walked down a tunnel into retro-land.&amp;nbsp; There were 70s, 80s, and 90s zones.&amp;nbsp; Depending on the zone there was:&lt;BR&gt;&lt;BR&gt;- an arcade with coin-ops machines (galaga, pac-man, etc), pool tables, and air hockey&lt;BR&gt;- a stage with costumes were you could film a 70s style music video&lt;BR&gt;- stuntmen doing tricks with BMX bikes and skateboards&lt;BR&gt;- the car from Back to the Future&lt;BR&gt;- many screens set up with Super Mario Brothers, Donkey Kong, Halo 3, Guitar hero, many more&lt;BR&gt;- remote control car racing&lt;BR&gt;- jumbo screens with 80/90s videos playing&lt;BR&gt;- food everywhere, all different kinds&lt;BR&gt;- 80s breakdancers&lt;BR&gt;- tables with a dealer and a supply of chips for Texas Holdem&lt;BR&gt;- a Segway obstacle course (i tried this, it was fun finally riding one)&lt;BR&gt;- an Oxygen bar&lt;BR&gt;- a live lounge band in tuxes singing Brass Monkey, Shake that Ass, Closer, Smells Like Teen Spirit, etc in a lounge/crooner style .. this was just wrong&lt;BR&gt;- a sit down photo booth&lt;BR&gt;- i am probably missing some stuff&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Adobe "Sneaks"</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/adobe-sneaks.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:6ecce682-d7a1-4d0a-8de2-3bef40816475</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-03T00:35:00Z</updated>
		<published>2007-10-03T00:35:00Z</published>
		<content type="html">&lt;DIV&gt;Notes from the Sneak Peak General Session for all:&lt;BR&gt;&lt;BR&gt;Visual Communicator&lt;BR&gt;- new product, very cool demo&lt;BR&gt;- an app that integrates with a webcam&lt;BR&gt;- the speakers stand on stage in front of a green screen&lt;BR&gt;- imagine three columns:&lt;BR&gt;&amp;nbsp; - on the left of the app is the web cam image of them, taking into account the green screen&lt;BR&gt;&amp;nbsp; - in the middle is a scrolling vertical "teleprompter" they can edit in place&lt;BR&gt;&amp;nbsp; - on the right is a scrolling vertical timeline that shows effects/transitions&lt;BR&gt;- they click play and the two sort of timelines on the right scroll slowly&lt;BR&gt;- they read from the "teleprompter" as graphics pop up on the green screen behind them and transitions occur&lt;BR&gt;- they demonstrate how quickly they can throw in images over top of themselves, like a news broadcast&lt;BR&gt;- they claim they have 3rd graders using it to make fun little productions that television crews had whole trucks for&lt;BR&gt;- now I know what this CD is they gave us on day 1, sweet&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;VoIP in Flash Player&lt;BR&gt;- this is the CoCaMo thing again from this morning's session&lt;BR&gt;- they talk about it more and indicate Adobe wants you to build products around it, without requiring them&lt;BR&gt;- it will be p2p and through your server, so does not require a subscription to an Adobe service for your custromers (no double authentication issues, Adobe does not have your client list, etc)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Flash Home for Mobile&lt;BR&gt;- product that provides the ability to replace your "home" screen on your cell phone&lt;BR&gt;- boot the phone directly into Flash&lt;BR&gt;- leverages a server called FlashCast&lt;BR&gt;- unlike a WAP browser where you click and wait for a refresh, it is like Flash in that it can do web requests without refresh (in-place)&lt;BR&gt;- shows example code, simple function that checks for incoming area code and swaps out background image&lt;BR&gt;- has someone in audience call him, code detects person is coming from New York and display statue of liberty image&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Photoshop Express&lt;BR&gt;- online version meant for the average consumer&lt;BR&gt;- built in Flex&lt;BR&gt;- quickly correct and see previews&lt;BR&gt;- each change generates an image in a timeline and new result is rendered in real-time&lt;BR&gt;- can remove any edit in the timeline and see the end result, not just linear undo&lt;BR&gt;-&amp;nbsp;your images are hosted online and you can package them up into a slide show and share them&lt;BR&gt;- full end to end solution&lt;BR&gt;&lt;BR&gt;Flex and AIR authoring in Fireworks (Future)&lt;BR&gt;- skinning Flex/AIR apps&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Creating Offline/Online Apps w/ AIR and ColdFusion&lt;BR&gt;- no idea&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Web 2 Print&lt;BR&gt;- using in-design, indesign CS3 server to design and see immediate real time PDF mass printable documents&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Flash (Future)&lt;BR&gt;- move viewing on stage in design&lt;BR&gt;- no more need for keyframes, this was cool:&lt;BR&gt;&amp;nbsp; - they drop an image on stage&lt;BR&gt;&amp;nbsp; - they just drag out the image in the timeline the desired number of frames&lt;BR&gt;&amp;nbsp; - they pick a frame and just move the object and the tweens are generated, no keyframes required&lt;BR&gt;&amp;nbsp; - they pick a different frame and increase the size of the object, tweens are generates, no keyframes required&lt;BR&gt;&amp;nbsp; - they stick a bezier curve over the frame and define the path automtically&lt;BR&gt;&amp;nbsp; - they go to any frame and see where the object will be on the curve and can adjust the location of the curve at that frame, changing all tweens effortlessly&lt;BR&gt;- the coolest thing though, was an example of using the new bone support:&lt;BR&gt;&amp;nbsp; - they draw a few peach colored circles with the edges on top of each other&lt;BR&gt;&amp;nbsp; - they use a tool to place connections (bones) between each circle&lt;BR&gt;&amp;nbsp; - they then move the last circle and watch as the just created arms with joints move around like an arm&lt;BR&gt;&amp;nbsp; - they show off a cool robo-bug animation where they have done the bone stuff and move different pieces at different frames&lt;BR&gt;&amp;nbsp; - they then reveal that it is interactable at runtime, that is if you choose, the user can interact with the bones&lt;BR&gt;- lots of applause and geek squeels on this one&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;PDF Packaging UI&lt;BR&gt;- integration of Flash in Acrobat&lt;BR&gt;- clickable links in a PDF that open SWFs inline and in context (locations that open google map points)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Flex Apps on Linux&lt;BR&gt;- Flex Builder on Linux Alpha launched as of this evening&lt;BR&gt;- not yet full support of Flex Builder 3 features (no design view), but does have debugger&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;C/C++ and Flash&lt;BR&gt;- C/C++ to AS3 compiler&lt;BR&gt;- example conversion of libxslt&lt;BR&gt;- even converts synchronous C code to asynchronous AS3 code to keep UI from blocking&lt;BR&gt;-&amp;nbsp;coolest part was when he showed Quake,&amp;nbsp;initially written in C and&amp;nbsp;completly ported to AS3, with some Flash status overlays zooming in and out (he added this after compiling/converting the code to AS3)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Seam Carving&lt;BR&gt;- they announce some guy had been getting tons of youtube views for a little app he wrote that was 20 lines of code&lt;BR&gt;- they immediately hired him when they found out about it&lt;BR&gt;- his process is called seam carving&lt;BR&gt;- it looks at transitions in any bitmap image and finds what he calls "seams"&lt;BR&gt;- it then removes the seams, for instance, when shrinking the image&lt;BR&gt;- the effect is great, instead of shrinking out the image evenly, it keeps the content more&lt;BR&gt;- it is too difficult to describe how well it works, but they have an image of guy on a bike and the old scaling method in the X direction shows the whole image thinner, with the biker skinnier, while the new image shows the biker almost the same size even though the image has been shrunk&lt;BR&gt;- he also can grow the image&lt;BR&gt;- the best part is where he opens up a picture and with just dragging brush over top of an area can make objects dissappear (a boat out of the water, a shoe out of a shoe rack) .. the end results look like the image was never there!&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Optimizing Flex Apps</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/optimizing-flex-apps.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:9d878072-64d4-4d26-adab-1bdf4c36a1cd</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-02T22:05:00Z</updated>
		<published>2007-10-02T22:05:00Z</published>
		<content type="html">&lt;DIV&gt;Notes:&lt;BR&gt;&lt;BR&gt;- Flash Player 9 internal lifecycle: rendering, excute actionscript code, networking, repeat&lt;BR&gt;- writing crappy AS code can starve rendering&lt;BR&gt;&lt;BR&gt;- deferred creation&lt;BR&gt;- several container components support a creation&amp;nbsp; policy which should be used if possible, such as Accordian, TabNavigator, ViewStack, etc&lt;BR&gt;- this allows items that are not yet viewablle to defer creation&lt;BR&gt;- you can implement deferred creation in your own custom containers, but better to just extend ViewStack&lt;BR&gt;&lt;BR&gt;- constraint layouts can be slow with lots of nested containers&lt;BR&gt;- reduce container nesting when possible&lt;BR&gt;&lt;BR&gt;- if you are loading lots of images, do it smartly&lt;BR&gt;- each one's load complete will cause a re-layout process&lt;BR&gt;- better to load them all off the display list, then, when all loaded, add them to display list&lt;BR&gt;&lt;BR&gt;- use cacheAsBitmap for effects that don't change size&lt;BR&gt;- this renders the component to an offscreen buffer and fast draws the buffer&amp;nbsp;to the display&lt;BR&gt;-&amp;nbsp;MoveEffect - good use for cacheAsBitmap&lt;BR&gt;- Resize - bad use for cacheAsBitmap&lt;BR&gt;&lt;BR&gt;- use Resize.hideChildren to hide children during state transitions when possible (e.g. resize a grid you could hide the item renderers with this, but that would leave a blank grid in meantime)&lt;BR&gt;&lt;BR&gt;- setStyle is expensive, except during object creation time&lt;BR&gt;&lt;BR&gt;- using performance profile in Flex Builder 3:&lt;BR&gt;- start app via profiler&lt;BR&gt;- uncheck memory profiling if not using it&lt;BR&gt;- once you get to the point in your app you want to profile, clear the results&lt;BR&gt;- do the action you are profiling&lt;BR&gt;- take a snapshot&lt;BR&gt;- you can now drill down each method, and each method it called to see performance breakdowns&lt;BR&gt;&lt;BR&gt;Case Study&lt;BR&gt;- List itemRenderers that were doing lots of changes to the list&lt;BR&gt;- initially wrote renderer&amp;nbsp;as a VBox with other containers inside to positon label&lt;BR&gt;- rewriting as a simple AS class that andled the layout very simply drastically improved performance of all the dynamic updates going on to the list&lt;BR&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Beyond the Basics of Flex Builder</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/beyond-the-basics-of-flex-builder.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:ea1c0f46-764e-41fb-b51d-2e25e82e0293</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-02T20:37:00Z</updated>
		<published>2007-10-02T20:37:00Z</published>
		<content type="html">&lt;DIV&gt;Notes:&lt;BR&gt;&lt;BR&gt;&lt;FONT size=2&gt;- Flex is now open source, and the SDK is on a nightly build that can be pulled down anytime&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Using that in conjunction with he new open bug database, you can actually test out fixes prior to official release to see if they solve your problem&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;- Flex Builder 3 supports multiple SDKs now&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- SDK can be assigned on a per project basis&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Compiler/Design/Code intelligence pull from the assigned SDK&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Discussion on how to set up a pulled down SDK for building the SDK when you want to update framework code to test fixes you make, and then run your project against our modified framework&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Requires a little bit of setup&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;- Flex Builder 3 code behind has been enhanced to support code jumping (CTRL+click) through all include code&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- It has also been fixed to support code jumping through all levels of the code tree, backwards and forwards&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;- There is a faster SWC parsing implementation that has been placed in Flex Builder 3 but was disabled for the beta 2 as it did not get sufficient testing for the release&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Can be enabled by putting down a file called “use.newABC”&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- This update cuts project load time in half and will be in the next release officially&lt;/FONT&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Continuous Integration with Flex, FlexUnit, and Ant</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/continuous-integration-with-flex-flexunit-and-ant.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:cd335fab-3cd0-4528-b01a-90bbb2062aeb</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-02T19:28:00Z</updated>
		<published>2007-10-02T19:28:00Z</published>
		<content type="html">&lt;DIV&gt;Goals:&lt;BR&gt;Centralized&lt;BR&gt;Automated&lt;BR&gt;Self-Testing&lt;BR&gt;&lt;BR&gt;- Continuous Integration is a software development process where members of a team integrate their work frequently&lt;BR&gt;- Each integration is verified by an automated build and test that detects integration errors as quickly as possible&lt;BR&gt;&lt;BR&gt;Allurent Buildwatch&lt;BR&gt;- Build failure notifications via email with the build&amp;nbsp;failures&lt;BR&gt;- Dashboard of projects with their current build status, last time built, etc&lt;BR&gt;- Distribution page of binary builds and docs&lt;BR&gt;&lt;BR&gt;Automated Build Process&lt;BR&gt;- build file for the project&lt;BR&gt;- src directory&lt;BR&gt;- bin directory&lt;BR&gt;&lt;BR&gt;- Goes over using Ant with the flexTasks.tasks (we are already doing this in our app) and &amp;lt;mxmlc&amp;gt;&lt;BR&gt;&lt;BR&gt;- Build best practices&lt;BR&gt;- keep source and output separated&lt;BR&gt;- don't work work you've done already&lt;BR&gt;- provide reasonable defaults&lt;BR&gt;- centralize behavior&lt;BR&gt;- predictability&lt;BR&gt;&lt;BR&gt;- FlexUnit - supports Flex and ActionScript, asynchronous testing, and graphic test results (through Ant)&lt;BR&gt;&lt;BR&gt;- Antennae -&amp;nbsp;&lt;BR&gt;- Build templates, encapsulates best practives, handles&amp;nbsp; flex apps/libs/docs, cross project dependencies, multiple projects&lt;BR&gt;- automated test suite generation&lt;BR&gt;- ability to fileter down the tests ro run&lt;BR&gt;- ActionScript to Java result reporting&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Safe Module Initialization</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/safe-module-initialization.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:861b0792-9e0d-42c9-934e-15bf753cd41c</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Flex" />
		<updated>2007-10-02T18:30:00Z</updated>
		<published>2007-10-02T18:30:00Z</published>
		<content type="html">&lt;DIV&gt;
&lt;P style="MARGIN-BOTTOM: 0in"&gt;&lt;FONT size=2&gt;Modules are really nice for our particular application because we already have 100s of screens and need to be able to scale to have 1000s of screens some day. One of the things I looked for but did not find immediately in the Module framework was a way for the main application loading the Module to know when the loaded Module is safe for communication.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Most components dispatch a creationComplete event. This event can be used to perform whatever post-processing needs to be performed after the component is completely created and initialized (including all contained children).&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;The ModuleLoader is the component used to load in Modules. The ModuleLoader does not expose a creationComplete event. The ModuleLoader does however expose a ready event. The ready event indicates the contained Module has been loaded and instantiated. We can use this information to get at our newly loaded Module's creationComplete event registration in an effort to know when it is safe to post-process the Module. Here is some code in the Main application that sets this up:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;// Main.mxml has a ModuleLoade named moduleLoader. In Main.mxml, define the&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;// moduleLoader's “ready” event property to be moduleLoader_ready(event:ModuleEvent)&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;//&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;// Then define moduleLoader_ready as:&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;//&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;protected&lt;/FONT&gt;&lt;/B&gt; &lt;B&gt;&lt;FONT color=#339966&gt;function&lt;/FONT&gt;&lt;/B&gt; moduleLoader_ready(event:ModuleEvent):&lt;B&gt;&lt;FONT color=#0033ff&gt;void&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;this&lt;/FONT&gt;&lt;/B&gt;&lt;FONT color=#000000&gt;.moduleLoader.child.addEventListener(FlexEvent.CREATION_COMPLETE,&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;moduleLoader_child_creationComplete);&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;}&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;// The above code will register an event handler for the creationComplete event&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;// fired from the content loaded into the Module&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;//&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;protected&lt;/FONT&gt;&lt;/B&gt; &lt;B&gt;&lt;FONT color=#339966&gt;function&lt;/FONT&gt;&lt;/B&gt; moduleLoader_child_creationComplete(event:FlexEvent):&lt;B&gt;&lt;FONT color=#0033ff&gt;void&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;this&lt;/FONT&gt;&lt;/B&gt;&lt;FONT color=#000000&gt;.moduleLoader.child.removeEventListener(FlexEvent.CREATION_COMPLETE,&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;moduleLoader_child_creationComplete);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#008000&gt;// at this point we know the Module has been loaded and has had it&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;// lifecycle run up to creationComplete. It should now be safe to do&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;// normal component post-processing on the Module.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#008000&gt;// We require all of our Modules to implement a standard contract, IScreen.&lt;/FONT&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#6699cc&gt;var&lt;/FONT&gt;&lt;/B&gt;&lt;FONT color=#000000&gt; iScreen:IScreen = IScreen(&lt;/FONT&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;this&lt;/FONT&gt;&lt;/B&gt;&lt;FONT color=#000000&gt;.moduleLoader.child);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;FONT color=#000000&gt;iScreen.context = &lt;/FONT&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;this&lt;/FONT&gt;&lt;/B&gt;&lt;FONT color=#000000&gt;.getCurrentContext();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;iScreen.doSomethingStandard();&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#008000&gt;// etc&lt;BR&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT color=#000000&gt;}&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Arial, sans-serif"&gt;&lt;FONT size=2&gt;Within our Module we sometimes wish to query the Main application. Again, we use a contract, this time called IScreenContainer. As we have some commonality amongst screens (Modules), we have base screen class. There is a property on the base screen class to get the IScreenContainer:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;protected&lt;/FONT&gt;&lt;/B&gt; &lt;B&gt;&lt;FONT color=#339966&gt;function&lt;/FONT&gt;&lt;/B&gt; &lt;B&gt;&lt;FONT color=#0033ff&gt;get&lt;/FONT&gt;&lt;/B&gt; screenContainer():IScreenContainer&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;&lt;B&gt;&lt;FONT color=#0033ff&gt;return&lt;/FONT&gt;&lt;/B&gt;&lt;FONT color=#000000&gt; IScreenContainer(Application.application);&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New, monospace"&gt;&lt;FONT style="FONT-SIZE: 8pt" size=1&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Keynote Presentation Day II</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/keynote-presentation-day-ii.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:b889b817-b34d-48a4-836b-b554768ce28b</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-02T17:37:00Z</updated>
		<published>2007-10-02T17:37:00Z</published>
		<content type="html">&lt;DIV&gt;Holy crap!&amp;nbsp; Thermo ...&amp;nbsp;read on ...&lt;BR&gt;&lt;BR&gt;Discussion continues on the technology platform, specifically in the areas of Servers, Services, and Tools.&lt;BR&gt;&lt;BR&gt;Servers - LiveCycle ES&lt;BR&gt;- They show off a design view of a process management workflow, where each node represents code that comes with the product and the ability to link up all of these workflow steps&lt;BR&gt;- They can scan in a PDF form and turn it into a simple RIA using LiveCycle&lt;BR&gt;&lt;BR&gt;Services&lt;BR&gt;&lt;BR&gt;- Scene7&lt;BR&gt;- leading "on demand" rich media publising service&lt;BR&gt;- real impressive demo of a dynamic image rendering on to a 3d surface (a football player uniform being designed in real-time, addinga number you type in, adjust colors, adding an image you upload, all rendered rigt on to the uniform a guy on the screen is wearing)&lt;BR&gt;- they show off a QVC prototype app running on AIR that shows live broadcasts and interactivity&lt;BR&gt;&lt;BR&gt;-SHARE (beta)&lt;BR&gt;- free 1GB of storage for managing shared documents&lt;BR&gt;- keeps revision history&lt;BR&gt;- keeps track of with whom you have shared what documents&lt;BR&gt;- full set of APIs to interact with the service&lt;BR&gt;- on service conversion between Word and PDF&lt;BR&gt;- it crashes twice during the demo&lt;BR&gt;&lt;BR&gt;- Pacifica&lt;BR&gt;- new service for high quality voice integration into Flash and Flex&lt;BR&gt;- version 1.0:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- high quality chat&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- text&amp;nbsp; im&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;advanced NAT/Firewall traversal&lt;BR&gt;- roadmap:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- video chat&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- p2p&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- AIR&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- connect into traditional telephone network&lt;BR&gt;&lt;BR&gt;- CoCaMo&lt;BR&gt;- new Adobe Connect version written in Flex&lt;BR&gt;- opening up APIs for Flex apps&lt;BR&gt;- no server side code required&lt;BR&gt;- showed off MXML components to connect to a room, add chat, etc&lt;BR&gt;&lt;BR&gt;Tools&lt;BR&gt;&lt;BR&gt;Thermo&lt;BR&gt;- new tool&lt;BR&gt;- allows designers to draw the web site out and have Flex code generated from it in real-time&lt;BR&gt;- new Flex "graphic" components are being introduced to handle every standard design element (rounded rects, polys, etc)&lt;BR&gt;- the designer draws out rounded rects and if he/she desires can view the Flex MXML in source view&lt;BR&gt;- the demo was awesome - the presenters imported a PhotoShop file of a web site front end and did the following:&lt;BR&gt;&lt;BR&gt;Demo Part 1&lt;BR&gt;- select a rectangle graphic that was in a certain layer of the PSD image that was obviously made to look like a text input&lt;BR&gt;- right click the rectangle graphic, select "Convert Artwork To"&lt;BR&gt;- select TextInput from a&amp;nbsp;list of every Flex control&lt;BR&gt;- immediately run the app and see it is an interactable TextInput&lt;BR&gt;- note that the Flex code handles this by making the rectangle image becomes a skin of the TextInput&lt;BR&gt;&lt;BR&gt;Demo Part 2&lt;BR&gt;- select a label, convert it to a label&lt;BR&gt;- flips over to Flex source view and sees that it preserved the fonts, colors, etc from the PSD image when it created the Label&lt;BR&gt;&lt;BR&gt;Demo Part 3&lt;BR&gt;- multi selects album cover images in a horizontal row and converts it into a List control&lt;BR&gt;- select one image (now a list item) and define an effect for rollOver (can choose from a list of possible effects)&lt;BR&gt;- the effect was the album image expands and text appears&lt;BR&gt;- the text that appears defaults certain transitions to show up (fades in), but they show these can be changed as desired from within thermo (very easy to change)&lt;BR&gt;- thermo automatically generates the state transtition code&amp;nbsp;needed in&amp;nbsp;Flex, along with the tween to move from start to end state (transition)&lt;BR&gt;- the state transition can be previewed in thermo without running the Flex generated app&lt;BR&gt;&lt;BR&gt;Demo Part 4&lt;BR&gt;- selected a rectangle that was clearly meant to be a scrollbar for the list&lt;BR&gt;- converts it to a scrollbar with the thermo (right click, convert to scrollbar)&lt;BR&gt;- from thermo he does a little more work with the scrollbar -&amp;nbsp;identifies which images in the PSD image layer that was selected for conversion should go with which aspects of the scrollbar (thumb, track, buttons)&lt;BR&gt;&lt;BR&gt;Demo Part 5&lt;BR&gt;- selects the new scrollbar control and drags an anchor to hook it to the list control (from example 3) to automatically generate all the wiring to make the scrollbar scroll the list&lt;BR&gt;&lt;BR&gt;Demo Part 6&lt;BR&gt;- Shows how there is not really enough album images to demo the app well, and tells thermo to generate some more images in the list control (just copies the existing images over)&lt;BR&gt;- Also identifies where the data should be bound from (dataFields) to populate the text under the album image created in Demo Part 3 that shows up in the rollOver state&lt;BR&gt;&lt;BR&gt;- From Thermo they run the code, whole thing took like 5 mins and now, from an image of a web site page, they have an RIA that scrolls a list of images and pop-ups out on rollovers&lt;BR&gt;- Thermo and Flex Builder share the same project files, so designer and developer can open the same projects and work on it&lt;BR&gt;- due out next year sometime&lt;BR&gt;&lt;BR&gt;xd.adobe.com&lt;BR&gt;- new site for help with what makes an RIA site really work&lt;BR&gt;- design patterns up there currently, eventually some components&lt;BR&gt;- design reviews of site work you post&lt;BR&gt;- case studies&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Hands On Flex - Building an RIA</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/02/hands-on-flex--building-an-ria.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-02:8d2e0b4f-4511-404f-ad67-22fd1cb16a8d</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-02T15:15:00Z</updated>
		<published>2007-10-02T15:15:00Z</published>
		<content type="html">&lt;DIV&gt;We wrote some code in this session.&amp;nbsp; Some notes:&lt;BR&gt;&lt;BR&gt;It was really easy to suck up a .NET web service in Flex with a few MXML tags.&amp;nbsp; Flex Remoting, not so much.&amp;nbsp; However, Flex Remoting provides a bunch more stuff (security management, performance, etc).&lt;BR&gt;&lt;BR&gt;In order to communicate from Flex to the .NET class using Flex Remoting, you need to have something in between.&amp;nbsp; In our session we used WebORB, which is supposed to be free for the standard version.&amp;nbsp; It was more complex to use than the web service side.&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Meet the Flex Team</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/01/meet-the-flex-team.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-01:d090a06c-a232-40c3-b8b0-03440d357913</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-02T02:39:00Z</updated>
		<published>2007-10-02T02:39:00Z</published>
		<content type="html">&lt;DIV&gt;We met all the members of the Flex team this evening.&amp;nbsp;&amp;nbsp; They answered some general questions, then we broke out and could ask them specific questions.&amp;nbsp; This was an interesting session.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;Noteable general questions/comments:&lt;BR&gt;- Flex Team is working with Google and other companies that can not be named on search engine optimization&lt;BR&gt;- A few big companies that re "secretive" are involved and are sensitive about any information being released atm&lt;BR&gt;- Someone asked about cairngorm integration - The Flex Team took an audience poll and found about 1/3 of the room used this framework, 1/3 used a different framework, and 1/3 used something else&lt;BR&gt;- They indicated they are thinking about 3rd party framework integration, but this is the problem&lt;BR&gt;- L/R language support will come with the first version of Flex that is built on the next&amp;nbsp;Flash Player (astro)&lt;BR&gt;- They mention some work went in to Flex Builder performance in this latest release when someone complained about getting Internal Errors from Flex Builder&lt;BR&gt;&lt;BR&gt;I specifically had a discussion with one of the developers&amp;nbsp;who works with&amp;nbsp;Modules on the appropriate and safe way to initalize them.&amp;nbsp; When I got back to the hotel I tried out some of his ideas.&amp;nbsp; I will post later what I found.&lt;BR&gt;&lt;BR&gt;The Flex Team mentions not to miss tommorrow's Sneak Peak session and General Session for some interesting Flex related things...&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Flex Interface Guidelines</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/01/flex-interface-guidelines.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-01:d54edb14-38f3-4cbe-89d4-2080e71a6d3d</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-02T01:36:00Z</updated>
		<published>2007-10-02T01:36:00Z</published>
		<content type="html">&lt;DIV&gt;
&lt;P style="MARGIN-BOTTOM: 0in"&gt;&lt;FONT size=2&gt;Some notes:&lt;BR&gt;&lt;BR&gt;Flex Developer Center has a new&amp;nbsp;tab for Flex Interface Guidelines whose purpose is to:&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;- Communicate intentions&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Set a standard for Flex application design&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Share RIA design expertise&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;- Solicit your RIA design expertise&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;Most of the slides come straight from the available content on the web site&lt;BR&gt;&lt;BR&gt;Notable discussion:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Think about using motion to drive where focus should be instead of motion just for the sake of motion.&amp;nbsp; E.g. A list item is clicked and it becomes the new screeen.&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Optimizing ActionScript 3</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/01/optimizing-actionscript-3.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-01:2b9a3844-3289-469b-a341-e58d337f8d3e</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-01T22:51:00Z</updated>
		<published>2007-10-01T22:51:00Z</published>
		<content type="html">&lt;DIV&gt;Some notes:&lt;BR&gt;&lt;BR&gt;AVM2 architecture - SWFs have byte code which is just in time (JIT) compiled to native code&lt;BR&gt;&lt;BR&gt;JIT's job:&lt;BR&gt;- verify and optimize byte code&lt;BR&gt;- generate native code&lt;BR&gt;&lt;BR&gt;Tools for optimization:&lt;BR&gt;- flash.utils.getTimer&lt;BR&gt;- trace&lt;BR&gt;- Flash Debug Player&lt;BR&gt;- Flex 3 Builder Performance Profiler&lt;BR&gt;&amp;nbsp;&lt;BR&gt;3rd Party Tools:&lt;BR&gt;- REDbug&lt;BR&gt;- Firebug&lt;BR&gt;- Flash Tracker&lt;BR&gt;&lt;BR&gt;Graphics:&lt;BR&gt;- minimize usage of full screen scrolling and effects&lt;BR&gt;- minimize unnecessary animations&lt;BR&gt;- if using animation and want to hide something, instead of making it invisible, remove it from the display list and then add it later&lt;BR&gt;&lt;BR&gt;General:&lt;BR&gt;-&amp;nbsp;Optimize memory foot prints&lt;BR&gt;- Use deferred instantiation&lt;BR&gt;- Remove listeners or object reference&lt;BR&gt;- Remove debug code trace statements&lt;BR&gt;- Set compiler option optimize=true (default)&lt;BR&gt;- instatiating objects inside loops when you could have instantiated it once and updated props&lt;BR&gt;- non-typing is a bad thing with respect to optimization&lt;BR&gt;&lt;BR&gt;Found while comparing Optimized vs Non-Optimized code:&lt;BR&gt;&lt;BR&gt;- weak references have a negative performance hit, e.g.:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var o:Object = (data: "My Data", label: "My Label");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o["data"] = "My New Data";&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;- continually looking up the same property, e.g.&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (o.prop == "Something" ||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;o.prop == "Something Else" ||&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.prop == "Even Something Else) {&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vs.&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var prop:String = o.prop;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (prop == "Something" ||&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop == "Something Else" ||&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop == "Even Something Else) {&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;- getting an object out of an array and not casting it first before calling a method (i thought this one was interesting), e.g.:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myArray[3].doSomethingCool();&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vs.&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var myObject:MyObject = myArray[3] as MyObject;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myObjet.doSomethingCool();&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;- keep arrays densely packed&lt;BR&gt;&lt;BR&gt;- use constants for instatiated vars that are the same and used more than once, e.g.&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT face="Courier New"&gt;this.scrollRect = new Rectangle(0, 0, 100, 100);&lt;/FONT&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&amp;nbsp; statement done more than once, make a const instead and assign it&lt;BR&gt;&lt;BR&gt;-&amp;nbsp;for&amp;nbsp;loop counters, uint/int is faster than Number&lt;BR&gt;&lt;BR&gt;- for loop over an array upper bound comparisons, assign .length to a var and compare against that&lt;BR&gt;&lt;BR&gt;- try/catch&amp;nbsp; takes longer in simple cases than checking conditions before accessing a prop, e.g.:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;len&amp;nbsp;=&amp;nbsp;myObject.child.child.length;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (e) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vs.&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;len = -1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (myObject != null &amp;amp;&amp;amp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myObject.child != null &amp;amp;&amp;amp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myObject.child.child != null) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;len = myObject.child.child.length;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;in this example, the try/catch was 100 times slower!!!&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Using Flash and Flex Together</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/01/using-flash-and-flex-together.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-01:73c6a5ed-8a3f-4204-9a77-736b6b993df4</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-01T20:57:00Z</updated>
		<published>2007-10-01T20:57:00Z</published>
		<content type="html">&lt;DIV&gt;&lt;FONT size=2&gt;
&lt;P&gt;Some notes:&lt;BR&gt;&lt;BR&gt;Flash can be used to create item rendereres used by Flex&lt;BR&gt;Flash can be used to create custom containers used by Flex&lt;BR&gt;&lt;BR&gt;Flex Component Kit (beta)&lt;BR&gt;- extension for Flash CS3&lt;BR&gt;- mx.flash.UIMovieClip&lt;BR&gt;- mx.flash.FlexContentHolder&lt;BR&gt;- Make Flex component command (JSFL script)&lt;BR&gt;- Implements IUIComponent&lt;BR&gt;- Currently adds 14K to your Flash SWC&lt;BR&gt;&lt;BR&gt;To use Flex Component Kit, you need:&lt;BR&gt;- Flash CS3&lt;BR&gt;- Extension Mgr CS3&lt;BR&gt;- Flex Builder 3&lt;BR&gt;- Flex Component Kit extension&lt;BR&gt;&lt;BR&gt;UIMovieClip -&lt;BR&gt;Extends MovieClip and allows it to be used in Flex&lt;BR&gt;All stuff movie clip can do, like timeline, scaling, rotate, bitmap filters, etc&lt;BR&gt;Implements core Flex interfaces, allowing the component to be used inside Flex containers and as Flex skins&lt;BR&gt;You must override the setActualSize method to know about component resize changes&lt;/P&gt;
&lt;P&gt;ContainerMovieClip -&lt;BR&gt;Allows you to use a Flash MovieClip as a Flex container (e.g. Panel container in Flex). Within this container you place a FlexContentHolder to define the area in which the Flex content will reside&lt;BR&gt;Don't use addChild, just assign the Flex content to the content property of the ContainerMovieClip&lt;BR&gt;&lt;BR&gt;To create the UIMovieClip In CS3&lt;BR&gt;&lt;BR&gt;- Convert to symbol&lt;BR&gt;- Commands-&amp;gt;Convert Symbol to Flex Component&lt;BR&gt;- May warn you about the frame rate (Flex default is 24fps so you need to be that or higher), you have to coordinate with Flex developer&lt;BR&gt;- Note that the registration point of the movie clip must be upper left&lt;BR&gt;&lt;BR&gt;Other commands to turn symbols into Flex Skins that can be included into a Flex app via CSS&lt;BR&gt;&lt;BR&gt;There are stateful and stateless skins (stateless is just declaring one MovieClip per skin, stateful is a multi-frame movie clip with a stop frame)&lt;BR&gt;&lt;BR&gt;You can now add events in Flash using meta data that Flex can pick up on&lt;BR&gt;&lt;BR&gt;A Flash component can define an animation that plays during a view state change, where the animation corresponds to a view state transition&lt;BR&gt;&lt;BR&gt;Blog and examples for doing all of the above stuff: &lt;B&gt;velloff.com&lt;/P&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/DIV&gt;</content>
	</entry>
	<entry>
		<title>Customizing the Flex Framework</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/01/customizing-the-flex-framework-2.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-01:735046cd-e596-4041-876c-571fa17cb123</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-01T20:04:00Z</updated>
		<published>2007-10-01T20:04:00Z</published>
		<content type="html">&lt;P&gt;Some Notes from Customizing the Flex Framework&lt;BR&gt;&lt;BR&gt;Customization is broken down into 4 buckets:&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;UI&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Data Management&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Data Display&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Control Behavior&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Customizing UI&lt;BR&gt;&lt;/STRONG&gt;MXML tags map to an AS class&lt;BR&gt;Every tag attribute turns into a property, style, event handler&lt;BR&gt;Some class have no class mapping and are hard coded into compiler (Script, Metadata, Style)&lt;BR&gt;Every MXML file corresponds to a new AS class where the name of the MXML file is thename of the AS class (code be kept by turning on keep-generated-actionscript=true)&lt;BR&gt;MXML objects with ids correspond to member variables of that AS class&lt;BR&gt;&lt;BR&gt;To create an MXML object that is not visible, extend from IMXMLObject&lt;BR&gt;The only method it implements is initialized(doc, id) - can be no-op&lt;BR&gt;&lt;BR&gt;Skinning and styling infrastructure built into the framework at the component level&lt;BR&gt;You can effect infrastructure built into the framework at the component level&lt;BR&gt;Styles are applied to individual components or across broad sets of components&lt;BR&gt;You can only get so far with styling, at some point you need to turn to skinning&lt;BR&gt;Skinning: modifying the appearance of a coponent by substituting in images, SWF files, or class files, with the drawing commands&lt;BR&gt;Skins represent the look of a component in its different states&lt;BR&gt;&lt;BR&gt;Effects classs live in mx.effects.*&lt;BR&gt;Paired with triggers which iniitates a Flex effect on a target component&lt;BR&gt;Defaullt effects lirary includes wipe, fade, Zoom, Glow, etc&lt;BR&gt;Effects split into two categories: simple (pause, sound, etc - extend from mx.effects.Effect) ... and complex (resize, zoom, etc - extend mx.efffects.TweenEffect)&lt;BR&gt;&lt;BR&gt;Writing an Effect&lt;BR&gt;1. composite via parallel and sequence&lt;BR&gt;2. subclass like a custom Wipe or custom Zoom&lt;BR&gt;3. Extended Effect or TweenEffect to make brand new effect (requires creating a custom effect factor and a custom effect instance class)&lt;BR&gt;4. Effect factory class manages the creation/destruction of the effect instance&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Customizing Data Management&lt;BR&gt;&lt;/STRONG&gt;Customizations can be built directly into the data mgmt classes&lt;BR&gt;Custom dataDescriptor&lt;BR&gt;Custom collections&lt;/P&gt;
&lt;P&gt;Hierachical data aware controls: Tree,Menu,MenuBar,AdvancedDataGrid&lt;BR&gt;These support arbitrary data&lt;BR&gt;Data Descriptors are used to walk the dataProvider and describe it the control&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;is this node a branch or a leaf - isBranch()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;what attribute on a node describes child collection (sub collection) - getChildren()&lt;BR&gt;Can use a custom data descriptor to do things like (extend DefaultDataDescriptor)&lt;BR&gt;&lt;BR&gt;lazy loading (define getChildren that loads data when this is called)&lt;BR&gt;hierarchical data does not fit the format supported by the default descriptor (i.e. children field does not exist)&lt;BR&gt;&lt;BR&gt;Managing data sets:&lt;BR&gt;Can use Array, XML, XMLList as dataProviders (internally wrapped up as a collection)&lt;BR&gt;Can use Flex classes to create collections (ArrayCollection, XMLListCollection)&lt;/P&gt;
&lt;P&gt;2 interfaces for creating custom collections:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- IList - simple interface for indexed access to linear data&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;- ICollectionView - more advanced interface to access data that is not guaranteed to be linear (e.g. use to support paging)&lt;BR&gt;List based controls listen for collection change event so grid updates when list changes&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Customizing Data Display&lt;BR&gt;&lt;/STRONG&gt;List Item Renderers can be specified as attribute or inline&lt;BR&gt;With inline use the &amp;lt;mx:Component&amp;gt; tag, can use outerDocument to get scope of outer document&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mx&lt;IMG src="http://blog.poweredbyhamsters.com/emoticons/laugh.png" border=0&gt;ataGridColumn ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mx:itemRenderer ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mx:Component ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mx:VBox ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;blogs.adobe.com/aharui&lt;/STRONG&gt; - blog about tips using item renderers&lt;BR&gt;&lt;BR&gt;Validators are triggered by an event valueCommit (by default) or manaully&lt;BR&gt;Specify source - object being validated, property is property on source object being validate&lt;BR&gt;Base class to extend for custom validators are mx.validators.Validator&lt;BR&gt;&lt;BR&gt;Formatters allows formatting of data for display&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Customizing Conrol Behavior&lt;BR&gt;&lt;/STRONG&gt;Extending controls is one way (discussed in other sessions), custom meta data is another&lt;BR&gt;&lt;BR&gt;For the most part, meta-data is only used at compile time and is stripped out of the SWF (by the linker) at optimization time so SWF size is smaller&lt;BR&gt;Some metadata is kept (Bindable, Managed, ChangeEvent, etc)&lt;BR&gt;The developer can control this (compiler option mxmlc-keep-as3-metadata in Flex 2)&lt;BR&gt;&lt;BR&gt;Problem was 3rd party developers don't know what meta-data to preserve, so Flex 3 SWC libraries now declare what metadata the linker should preserve when linking in code from that library. The app preserves the union of metadata from all the libraries that contributed code to the app.&lt;BR&gt;&lt;BR&gt;A good place to use custom meta data is for tooling, automation testing, etc. For example, use "testing directives" so that test harnesses can be run against custom components developed.&lt;BR&gt;&lt;BR&gt;Custom meta data from code can be introspected&lt;/P&gt;
&lt;P&gt;When bugs found in the framework:&lt;BR&gt;- File a bug (bugs.adobe.com)&lt;BR&gt;- Vote on bugs - promotes bugs internally so that is more likely to be fixed for the next drop&lt;BR&gt;- In the meantime (till bug is fixed):&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Option 1: Extend the offending control and insert your fix&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Option 2: Copy the class into a seperate package and use your fixed version&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Option 3: Edit the offending source code directly in the mx.* directory - problematic&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</content>
	</entry>
	<entry>
		<title>Creating New Flex Components</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/01/creating-new-flex-components.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-01:918abbd1-964a-4659-8fca-31a45efd879f</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-01T18:11:00Z</updated>
		<published>2007-10-01T18:11:00Z</published>
		<content type="html">&lt;P&gt;Some notes from the Creating new Flex Components:&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Every component extending from &lt;FONT face="Courier New"&gt;UIComponent&lt;/FONT&gt; in Flex experiences the component lifecycle:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;constructor&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;commitProperties&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;createChildren&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;measure&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;updateDisplayList&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;constructor&lt;/FONT&gt;:&lt;BR&gt;&lt;BR&gt;- use this just to set initial properties&lt;BR&gt;- do things that need to be done regardless of if component is shown on screen&lt;BR&gt;- do NOT create children components or attempt to position items (component does not have enough info yet)&lt;BR&gt;- constructor is called on new, other methods are called when component is added to the display list, e.g.:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var blah:Button = new Button(); // constructor&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;container.addChild(blah); // others&lt;/FONT&gt; &lt;BR&gt;&lt;BR&gt;- in mxml, both calls are generated by placing the button tag on the page&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;createChildren&lt;/FONT&gt;:&lt;BR&gt;&lt;BR&gt;- use this to create your child controls&lt;BR&gt;- do NOT size or position them - ever&lt;BR&gt;- at this point component does notknow how much screen space there is&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;measure&lt;/FONT&gt;:&lt;BR&gt;&lt;BR&gt;- responsible for determining how big component should be in a perfect world&lt;BR&gt;- it is a suggested size&lt;BR&gt;- it is called by layout manager&lt;BR&gt;- the issue is, to know how big your size should be, you need to know how big your children want to be&lt;BR&gt;- layout manager starts at outer most component and works its way down&lt;BR&gt;- measure sets measuredMinWidth, measuredMinHeight, measuredHeight, measureWidth&lt;BR&gt;- these values form the basis of a "suggestion" provided by the component to its parent about how big it would like to be&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;updateDisplayList:&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;- reality check method .. it gets passed in unscaledWidth and unscaledHeight, which is the actual space it was allocated&lt;BR&gt;- if you use more than this you get scrollbars&lt;BR&gt;- it is respsonsible for positioning its children, which is up to your component&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;commitProperties&lt;/FONT&gt;:&lt;BR&gt;&lt;BR&gt;- used to sync and coordinate property updates&lt;BR&gt;- e.g. you have three props that work together, but you need all three to be set before doing something&lt;BR&gt;- instead of checking flags in each property setter, you set a flag that indicates the property has changed and make a call to invalidateProperties()&lt;BR&gt;- in commitProperties, you check your flags, do your work if all three properties have been set, and update your flags&lt;BR&gt;&lt;BR&gt;You never call the lifecycle methods directly.&amp;nbsp; Instead, you use:&lt;BR&gt;&lt;BR&gt;- &lt;FONT face="Courier New"&gt;invalidateDisplayList&lt;/FONT&gt; ... issues &lt;FONT face="Courier New"&gt;updateDisplayList&lt;/FONT&gt;&lt;BR&gt;- &lt;FONT face="Courier New"&gt;invalidateProperties&lt;/FONT&gt; ... issues &lt;FONT face="Courier New"&gt;commitProperties&lt;/FONT&gt;&lt;BR&gt;- &lt;FONT face="Courier New"&gt;invalidateSize&lt;/FONT&gt; ... issues &lt;FONT face="Courier New"&gt;size&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;Calling these ensures the framework schedules a call to the method at the next appropriate time.&lt;BR&gt;&lt;BR&gt;A note about how data binding works behind the scenes.&amp;nbsp; When the compiler sees a bound expression, it just generates an anonymous event listener that re-reads the getter.&amp;nbsp; For example, if you define:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;[Bindable("change")]&lt;BR&gt;public function get selectedIndex():int {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;public function set selectedIndex(idx:int):void {&lt;BR&gt;&amp;nbsp;&amp;nbsp; ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;dispatchEvent("change");&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;With respect to component development, Flex Builder 3 adds:&lt;BR&gt;&lt;BR&gt;- categorization of your components in Flex Builder&lt;BR&gt;- default code generation&lt;BR&gt;- ability to make the properties panel show a certain custom way for your component&lt;BR&gt;&lt;BR&gt;The speaker gives his email address and blog:&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;labriola@digitalprimates.net&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;blogs.digitalprimates.net/codeSlinger&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;</content>
	</entry>
	<entry>
		<title>Keynote Presentation Day I</title>
		<link rel="alternate" href="http://blog.poweredbyhamsters.com/2007/10/01/keynote-presentation-day-i.aspx?ref=rss" />
		<id>tag:blog.poweredbyhamsters.com,2007-10-01:673a5a72-35c7-4800-abf9-d6839067c300</id>
		<author>
			<name>Ryan Kettrey</name>
		</author>
		<category term="Adobe Max 2007" />
		<updated>2007-10-01T16:25:00Z</updated>
		<published>2007-10-01T16:25:00Z</published>
		<content type="html">&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;The keynote presentation just finished, mainly hosted by Kevin Lynch (Adobe Chief Architect).&amp;nbsp;&lt;BR&gt;&lt;BR&gt;He announces the newly launched Adobe Developer Connection a sof today/this past weekend.&amp;nbsp; It's a new place for Adobe developers to go to sync up and gets ideas, do some social networking (sub-site built on Flex), and download SDKs, APIs, etc.&lt;BR&gt;&lt;BR&gt;He goes into a discussion on Adobe Technology Platform.&lt;BR&gt;&lt;BR&gt;Random notes:&lt;BR&gt;&lt;BR&gt;- 70% of all video on the web is Flash&lt;BR&gt;&lt;BR&gt;- 90% of the world upgraded to Flash 9 in one year (Kevin states this is unprecedented)&lt;BR&gt;&lt;BR&gt;- The new Flash Player that was just released, codenamed "moviestar",&amp;nbsp; includes support for H.264 video.&amp;nbsp; This video format is becoming an industry standard.&amp;nbsp; Supporting this format will make it easier to include contents from all new devices that are moving/have moved to this format.&lt;BR&gt;&lt;BR&gt;- The new Flash Player supports HD video up to 1080p&lt;BR&gt;&lt;BR&gt;- The new Flash Player&amp;nbsp;has 50% faster bitmap scaling&lt;BR&gt;&lt;BR&gt;- Kevin shows of Microsoft's Halo 3 site, which is a 3D somewhat interactive site. He states "Great job with Flash by Microsoft" which gets a good laugh&lt;BR&gt;&lt;BR&gt;- Flash Lite 3 coming soon (available next month as beta).&amp;nbsp; By 2010 1 billion phones should be able to run it&lt;BR&gt;&lt;BR&gt;Ed Rowe speaks on AIR.&amp;nbsp; Some cool things he shows off:&lt;BR&gt;&lt;BR&gt;- AIR has an embedded SQL database which was recently added&lt;BR&gt;&lt;BR&gt;- He shows a neat example of dragging a VCard from the desktop in to an AIR app that immediately sync's up with SalesForce.com&lt;BR&gt;&lt;BR&gt;- Beta 2 is now available&lt;BR&gt;&lt;BR&gt;Heidi Williams speaks on Flex 3.&amp;nbsp; She highlights a few things, including the&amp;nbsp;new profiler.&amp;nbsp; Looks like they have a real time graph of memory usage running now as the profiler runs, very cool.&lt;BR&gt;&lt;BR&gt;Disney shows off their travel agent AIR booking application.&amp;nbsp; The speaker opens up a custom quote in the app, then drags a PNG file from the desktop into the quote, then opens a PDF file and drags just part of the PDF selected text into the quote.&amp;nbsp; Then he hits generate and in milli-seconds a custom PDF quote is generated.&lt;BR&gt;&lt;BR&gt;In another funny moment, the keyboard gets stuck.&amp;nbsp; Kevin is typing in a site and it gets stuck typing in "o" repeatedly.&amp;nbsp; The address bar&amp;nbsp;eventually reads "ooooooooooo" which Kevin states is how he feels.&lt;BR&gt;&lt;BR&gt;Kevin shows off more AIR programs (Paypal, Google Analytics, and an email client).&amp;nbsp; He seemlessly drags content from one AIR app to another.&lt;BR&gt;&lt;BR&gt;Kevin shows off a Facebook AIR app for instant messaging (waveim).&lt;BR&gt;&lt;BR&gt;Kevin shows off a Nickelodean AIR app where he drags content from the Nick site into the desktop AIR app.&lt;BR&gt;&lt;BR&gt;Adobe announces they aquired Buzzword, which Kevin calls the "first real word processor on the web."&amp;nbsp; It is written in Flex and runs on the web and desktop (AIR).&lt;BR&gt;&lt;BR&gt;There is a small discussion of the next Flash Player, code-named Astro.&amp;nbsp; They mention long awaited core TextField updates for multi-language support and extensibility via ActionScript) and native support for 3D perspectives.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;</content>
	</entry>
</feed>
