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

<channel>
	<title>Devgirl's Weblog</title>
	<atom:link href="http://devgirl.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://devgirl.wordpress.com</link>
	<description>Trials and tribulations of software development</description>
	<lastBuildDate>Mon, 09 Nov 2009 18:43:57 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='devgirl.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/574e10a8c32a44f29e13d47c23d481b8?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Devgirl's Weblog</title>
		<link>http://devgirl.wordpress.com</link>
	</image>
			<item>
		<title>Beginner&#8217;s Guide to Skinning your Flex 4 Application or AIR Application</title>
		<link>http://devgirl.wordpress.com/2009/11/09/guide-to-skinning-your-flex-4-application-or-air-application/</link>
		<comments>http://devgirl.wordpress.com/2009/11/09/guide-to-skinning-your-flex-4-application-or-air-application/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 16:11:05 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[Flex 4 Skinning]]></category>
		<category><![CDATA[Flex 4 Skinning Application]]></category>
		<category><![CDATA[Flex Skinning]]></category>
		<category><![CDATA[Flex Skinning Application]]></category>
		<category><![CDATA[FXG]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=550</guid>
		<description><![CDATA[While working on the Tour de Flex samples for Flex 4, I spent some time digging into the new Flex 4 Skinning Architecture and found that I could do some really cool stuff with it. Though I&#8217;m definitely NOT a designer, I was impressed by the level of control it offered me and wanted to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=550&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While working on the <a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank">Tour de Flex </a>samples for Flex 4, I spent some time digging into the new Flex 4 Skinning Architecture and found that I could do some really cool stuff with it. Though I&#8217;m definitely NOT a designer, I was impressed by the level of control it offered me and wanted to share some basics/tips for skinning your Flex/AIR applications.</p>
<p>So you want to skin your app… where do you start?</p>
<p>1)     Copy the source code for the default ApplicationSkin.mxml or WindowedApplicationSkin.mxml file from the Flex 4 SDK source into a new MXML component file within your project. The path should be something like: /&lt;your-flex4-sdk-folder&gt;/frameworks/projects/spark/src/spark/skins/spark/ (or on Windows it would be c:\..\&lt;your-flex4-sdk-folder&gt;\frameworks\projects\spark\src\spark\skins\spark\). You can also use the default skins specified in the Wireframe Flex 4 theme included in the SDK. They are sometimes simpler to work with (for more info on Flex 4 themes, see <a href="http://help.adobe.com/en_US/Flex/4.0/UsingSDK/WS2db454920e96a9e51e63e3d11c0bf69084-7f85.html">this link</a>). The path to the wireframe skins will be something like: /&lt;your-flex4-sdk-folder&gt;/frameworks/projects/wireframe/src/spark/skins/wireframe/ (or on Windows it would be c:\..\&lt;your-flex4-sdk-folder&gt;\frameworks\projects\wireframe\src\spark\skins\wireframe\)</p>
<p>I figure what better way to make sure you have control over every detail than by starting with the Flex 4 SDK default skin class currently being used by the container or component. Many times you will not need that level of control and can omit parts of the code that are not changing, however I personally found it nice to see the options I had for modifying skin parts and the fact that they included comments in their skins to explain what each part is. </p>
<p>This is a quick and easy way to understand specifically which skin parts are defined as well. You can also check the<a href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/index.html?filter_flex=4"> Adobe Flex 4 Livedocs</a> for that particular host component&#8217;s class documentation to see the required skin parts, skin states etc. Generally though I begin by just grabbing the skin source for the host component I want to skin and modifying or omitting different parts to see how it affected the component (so in the case of skinning an app I would look for either <strong>spark.components.ApplicationSkin.mxml </strong>or <strong>spark.components.WindowedApplication.mxml</strong> respectively).</p>
<p>      <strong> Note: </strong>&#8216;host component&#8217; simply refers to the Spark component/container I want to skin.</p>
<p>2)     Change the parts you want to control. So for an Application you may want to modify the <em>ApplicationControlBar </em>look in addition to the background. This can all be done by modifying the source code for the ApplicationSkin.mxml class. Just rename it and modify it to your liking. These examples do not go into skinning the ApplicationControlBar, but you can apply the information from this post in doing so.</p>
<p><strong>Quick Tip</strong>: if you just want to use a graphic for your application background, you could use a skin as simple as this:</p>
<pre class="brush: xml;">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:SparkSkin xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
   xmlns:mx=&quot;library://ns.adobe.com/flex/halo&quot;
   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;&gt;;

    &lt;fx:Metadata&gt;
        [HostComponent(&quot;spark.components.Application&quot;)]
    &lt;/fx:Metadata&gt;

    &lt;s:states&gt;
        &lt;s:State name=&quot;normal&quot; /&gt;
        &lt;s:State name=&quot;disabled&quot; /&gt;
    &lt;/s:states&gt;

    &lt;s:BitmapImage width=&quot;400&quot; height=&quot;500&quot; source=&quot;@Embed('assets/SampleBackground.png')&quot;/&gt;
    &lt;s:Group id=&quot;contentGroup&quot; left=&quot;0&quot; right=&quot;0&quot; top=&quot;0&quot; bottom=&quot;0&quot;&gt;
&lt;/s:SparkSkin&gt;
</pre>
<p><strong>Note:</strong> You must keep the &#8216;contentGroup&#8217; part in your custom skin so the content of your application shows, otherwise you will only see your image. In the case of skinning an Application, the actual <a href="http://help.adobe.com/en_US/Flex/4.0/langref/spark/components/Application.html">Application.mxml Livedocs</a> will show you which skin parts are required. Scroll down until you see the section labeled <strong>Skin Parts</strong> in the class documentation. You can also view the inherited skin parts and skin states there.</p>
<p>If you want your image to actually fill in the entire space of the app, then you could use something like this:</p>
<pre class="brush: xml;">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:SparkSkin xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
 xmlns:mx=&quot;library://ns.adobe.com/flex/halo&quot;
 xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;&gt;

 &lt;fx:Metadata&gt;
     [HostComponent(&quot;spark.components.Application&quot;)]
 &lt;/fx:Metadata&gt;

 &lt;s:states&gt;
     &lt;s:State name=&quot;normal&quot; /&gt;
     &lt;s:State name=&quot;disabled&quot; /&gt;
 &lt;/s:states&gt;

 &lt;s:Rect id=&quot;backgroundRect&quot; left=&quot;0&quot; right=&quot;0&quot; top=&quot;0&quot; bottom=&quot;0&quot;&gt;
     &lt;s:fill&gt;
         &lt;s:BitmapFill source=&quot;@Embed('assets/SampleBackground.png')&quot;/&gt;
     &lt;/s:fill&gt;
 &lt;/s:Rect&gt;

 &lt;s:Group id=&quot;contentGroup&quot; left=&quot;0&quot; right=&quot;0&quot; top=&quot;0&quot; bottom=&quot;0&quot; /&gt;
&lt;/s:SparkSkin&gt;</pre>
<p>3)     Apply the custom skin to your MXML application. You can do this in two ways, either inline MXML or CSS. For inline MXML, you simply set the skinClass property on the root Application tag to the fully-qualified name of your custom class. For instance:</p>
<pre class="brush: xml;">
    &lt;s:Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot; xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
       xmlns:mx=&quot;library://ns.adobe.com/flex/halo
       skinClass=&quot;skins.CustomApplicationSkin&quot;&gt;
</pre>
<p>In CSS it would be something like:</p>
<pre class="brush: xml;">
s|Application
{
    skinClass: ClassReference(&quot;com.devgirl.blogexample.skins.CustomApplicationSkin&quot;);
}
</pre>
<p>I generally use the skinClass property for application skins. The CSS way to do it is nice when you want to apply a certain skin to all instances of a component that you may have created a custom class for, such as Button for example.</p>
<p>Below are a couple of examples of skinning an application with a simple custom application skin (keeping in mind the fact that I am so NOT a designer <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) but, they should help give an idea of what you are able to do. The screenshot is shown first followed by the source code for the custom skin and Flex app:</p>
<p><img src="http://devgirl.files.wordpress.com/2009/11/picture-5.png?w=449&#038;h=288" alt="Picture 5" title="Picture 5" width="449" height="288" class="aligncenter size-full wp-image-587" /></p>
<p>The custom background skin for the above screenshot looks like:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!-- ../skins/BackgroundImageAppSkin.mxml&gt;
&lt;s:SparkSkin xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
		xmlns:mx=&quot;library://ns.adobe.com/flex/halo&quot;
		xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;&gt;

	&lt;fx:Metadata&gt;
		[HostComponent(&quot;spark.components.Application&quot;)]
	&lt;/fx:Metadata&gt; 

	&lt;s:states&gt;
		&lt;s:State name=&quot;normal&quot; /&gt;
		&lt;s:State name=&quot;disabled&quot; /&gt;
	&lt;/s:states&gt;

	&lt;!-- This image fill also specifies padding around it --&gt;
	&lt;s:Rect id=&quot;backgroundRect&quot; left=&quot;100&quot; right=&quot;100&quot; top=&quot;20&quot; bottom=&quot;20&quot;&gt;
		&lt;s:fill&gt;
			&lt;s:BitmapFill source=&quot;@Embed('assets/wood-bg.png')&quot;/&gt;
		&lt;/s:fill&gt;
	&lt;/s:Rect&gt;	

	&lt;s:Group id=&quot;contentGroup&quot; left=&quot;0&quot; right=&quot;0&quot; top=&quot;0&quot; bottom=&quot;0&quot; /&gt;
&lt;/s:SparkSkin&gt;
</pre>
<p>The Flex application code for this screenshot is the following:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
			   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
			   xmlns:mx=&quot;library://ns.adobe.com/flex/halo&quot;
			   skinClass=&quot;skins.BackgroundImageAppSkin&quot;
			   backgroundColor=&quot;0x000000&quot;&gt;

	&lt;fx:Declarations/&gt;

	&lt;s:VGroup horizontalCenter=&quot;0&quot; verticalCenter=&quot;0&quot;&gt;
		&lt;s:Label text=&quot;Wood Sales Int'l&quot; fontSize=&quot;42&quot; /&gt;
		&lt;s:Border borderColor=&quot;0x000000&quot; borderWeight=&quot;3&quot; cornerRadius=&quot;7&quot; horizontalCenter=&quot;0&quot; verticalCenter=&quot;0&quot;&gt;
			&lt;s:VGroup&gt;
				&lt;mx:Form fontSize=&quot;16&quot;&gt;
					&lt;mx:FormItem label=&quot;Userid:&quot;&gt;
						&lt;s:TextInput id=&quot;userid&quot;/&gt;
					&lt;/mx:FormItem&gt;
					&lt;mx:FormItem label=&quot;Password:&quot;&gt;
						&lt;s:TextInput id=&quot;pw&quot;/&gt;
					&lt;/mx:FormItem&gt;
					&lt;mx:FormItem&gt;
						&lt;s:Button label=&quot;Login&quot;/&gt;
					&lt;/mx:FormItem&gt;
				&lt;/mx:Form&gt;
			&lt;/s:VGroup&gt;
		&lt;/s:Border&gt;
	&lt;/s:VGroup&gt;
&lt;/s:Application&gt;
</pre>
<p>Now I can change just one line in my sample code, the skinClass property to a different skin, and produce this:</p>
<p><img src="http://devgirl.files.wordpress.com/2009/11/picture-7.png?w=450&#038;h=254" alt="Picture 7" title="Picture 7" width="450" height="254" class="aligncenter size-full wp-image-593" /></p>
<p>And below is the custom gradient background skin for the above screenshot:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:SparkSkin xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
		xmlns:mx=&quot;library://ns.adobe.com/flex/halo&quot;
		xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;&gt;

	&lt;fx:Metadata&gt;
		[HostComponent(&quot;spark.components.Application&quot;)]
	&lt;/fx:Metadata&gt; 

	&lt;s:states&gt;
		&lt;s:State name=&quot;normal&quot; /&gt;
		&lt;s:State name=&quot;disabled&quot; /&gt;
	&lt;/s:states&gt;

	&lt;!-- border --&gt;
	&lt;s:Rect left=&quot;10&quot; right=&quot;10&quot; top=&quot;10&quot; bottom=&quot;10&quot; radiusX=&quot;9&quot; radiusY=&quot;9&quot;&gt;
		&lt;s:stroke&gt;
			&lt;mx:SolidColorStroke color=&quot;0xCCCCCC&quot; alpha=&quot;.5&quot; weight=&quot;4&quot;/&gt;
		&lt;/s:stroke&gt;
	&lt;/s:Rect&gt;

	&lt;s:Rect id=&quot;backgroundRect&quot; left=&quot;10&quot; right=&quot;10&quot; top=&quot;10&quot; bottom=&quot;10&quot; radiusX=&quot;9&quot; radiusY=&quot;9&quot;&gt;
		&lt;s:fill&gt;
			&lt;s:LinearGradient rotation=&quot;90&quot;&gt;
				&lt;s:entries&gt;
					&lt;s:GradientEntry color=&quot;0x0000FF&quot; ratio=&quot;0.00&quot; alpha=&quot;0.8&quot;/&gt;
					&lt;s:GradientEntry color=&quot;0x336699&quot; ratio=&quot;1.0&quot; alpha=&quot;0.5&quot;/&gt;
					&lt;s:GradientEntry color=&quot;0xCCCCCC&quot; ratio=&quot;0.5&quot; alpha=&quot;0.8&quot;/&gt;
				&lt;/s:entries&gt;
			&lt;/s:LinearGradient&gt;
		&lt;/s:fill&gt;
	&lt;/s:Rect&gt;

	&lt;s:Group id=&quot;contentGroup&quot; left=&quot;0&quot; right=&quot;0&quot; top=&quot;0&quot; bottom=&quot;0&quot; /&gt;
&lt;/s:SparkSkin&gt;
</pre>
<p>Again, the sample Flex application MXML looks exactly the same except we are specifying my custom gradient background skin on the skinClass property:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
			   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
			   xmlns:mx=&quot;library://ns.adobe.com/flex/halo&quot;
			   skinClass=&quot;skins.GradientBackgroundAppSkin&quot;&gt;

	&lt;fx:Declarations/&gt;

	&lt;s:VGroup horizontalCenter=&quot;0&quot; verticalCenter=&quot;0&quot;&gt;
		&lt;s:Label text=&quot;Wood Sales Int'l&quot; fontSize=&quot;42&quot; /&gt;
		&lt;s:Border borderColor=&quot;0x000000&quot; borderWeight=&quot;3&quot; cornerRadius=&quot;7&quot; horizontalCenter=&quot;0&quot; verticalCenter=&quot;0&quot;&gt;
			&lt;s:VGroup&gt;
				&lt;mx:Form fontSize=&quot;16&quot;&gt;
					&lt;mx:FormItem label=&quot;Userid:&quot;&gt;
						&lt;s:TextInput id=&quot;userid&quot;/&gt;
					&lt;/mx:FormItem&gt;
					&lt;mx:FormItem label=&quot;Password:&quot;&gt;
						&lt;s:TextInput id=&quot;pw&quot;/&gt;
					&lt;/mx:FormItem&gt;
					&lt;mx:FormItem&gt;
						&lt;s:Button label=&quot;Login&quot;/&gt;
					&lt;/mx:FormItem&gt;
				&lt;/mx:Form&gt;
			&lt;/s:VGroup&gt;
		&lt;/s:Border&gt;
	&lt;/s:VGroup&gt;
&lt;/s:Application&gt;
</pre>
<p>So you can see just how quickly you can make your application theme look entirely different with just a one line change and not modifying any behavioral logic. It&#8217;s very powerful and there are so many more things beyond this that you can do with the <a href="http://opensource.adobe.com/wiki/display/flexsdk/FXG+1.0+Specification">FXG drawing API&#8217;s</a>.</p>
<p>A couple other tips for non-designer folks out there&#8230; You can use the Adobe CS4 products such as Photoshop, Illustrator and Fireworks etc to create your skins and then export them as FXG and use them within your skins. You do not  have to understand all of the FXG classes and properties necessarily but can just visually draw what you want with those products and either do a &#8216;Save As&#8217; .fxg extension type (such as in Photoshop), or use the Export to FXG command (from the Commands menu) in Fireworks. For instance, it may generate your FXG for a drawn border (using the Path FXG object) based on what you drew that you can use without having to figure all the specific points out. You can then extract the parts you want from the FXG and place them in your custom skin class. Many times you will also get an image as a result and will use that within your skin class as well, like I did in the wood sample above. The image is exported and referenced as part of the FXG from the CS4 tools. If you play around with it a bit and export the FXG to see what it created, you will quickly see what you can do. </p>
<p><strong>Important to note:</strong> One FXG-related issue I ran into when exporting from Photoshop or Fireworks, is that there are times when what you produced will result in either a TextGraphic or BitmapGraphic in the FXG source and you must manually change them to RichText (for TextGraphic) and BitmapImage (for BitmapGraphic) or you will get compiler issues with the namespace. Detailed information about this can be found <a href="http://help.adobe.com/en_US/Flex/4.0/UsingSDK/WS6A72DBB6-E49E-465f-BAA8-462440405918.html">here.</a> </p>
<p>Also, an obvious tip to most, but just in case it helps someone&#8230; When I create my new image, I always use the &#8216;Transparent&#8217; background mode so that it fits in with whatever color scheme I might choose within the app. If you know exactly what color you are using already, you can set the background to that and it will matte it to that color. This is probably already known to many, but for those that might not know, it will save you time figuring out why there is a white border around your image in your app!</p>
<p>Also note, everything above can be applied to skinning your AIR applications as well. You simply start with the WindowedApplicationSkin.mxml default skin class from the Flex 4 SDK. </p>
<p>There’s so much to the skinning architecture to understand, that you should definitely check out the <a href="http://blogs.adobe.com/flex/">Flex 4 team blogs</a> and <a href="http://help.adobe.com/en_US/Flex/4.0/UsingSDK/index.html">Livedocs Help</a> to complete your knowledge.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/550/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=550&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/11/09/guide-to-skinning-your-flex-4-application-or-air-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/11/picture-5.png" medium="image">
			<media:title type="html">Picture 5</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/11/picture-7.png" medium="image">
			<media:title type="html">Picture 7</media:title>
		</media:content>
	</item>
		<item>
		<title>Adobe MAX 2009 Session Slides/Resources</title>
		<link>http://devgirl.wordpress.com/2009/10/12/adobe-max-2009-session-slidesresources/</link>
		<comments>http://devgirl.wordpress.com/2009/10/12/adobe-max-2009-session-slidesresources/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 01:26:24 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[Adobe MAX]]></category>
		<category><![CDATA[Adobe MAX Session Videos]]></category>
		<category><![CDATA[MAX 2009]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=542</guid>
		<description><![CDATA[If you weren&#8217;t able to come to MAX or attend our &#8216;Making Real-Time Data Come Alive with Flex Data Visualization&#8217; session, Greg and I have our slides, code zip and other resources here. The lab handout has all of the source code for the lessons as well and will walk you through the lab. Please [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=542&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you weren&#8217;t able to come to MAX or attend our &#8216;Making Real-Time Data Come Alive with Flex Data Visualization&#8217; session, <a href="http://gregsramblings.com/" target="_blank">Greg</a> and I have our slides, code zip and other resources <a href="http://tourdeflex.adobe.com/max/" target="_blank">here</a>. The lab handout has all of the source code for the lessons as well and will walk you through the lab. Please post a comment if you have any questions!</p>
<p>I had a wonderful time at MAX and met some really great people, I encourage all developers to make it a priority to attend this conference each year. The experience is invaluable!</p>
<p>If you weren&#8217;t aware, all of the session videos for MAX are posted <a href="http://tv.adobe.com/channel/max/max-2009/" target="_blank">here</a>. Some sessions I found particularly interesting and definitely worth your time to watch the videos are:</p>
<p><a href="http://tv.adobe.com/watch/max-2009-develop/whats-new-in-flex-4/" target="_blank">Ely Greenfield &#8211; What&#8217;s New in Flex 4</a></p>
<p><a href="http://tv.adobe.com/watch/max-2009-develop/a-deep-dive-into-flex-4-lists-and-layouts/" target="_blank">Glenn Ruehle &#8211; Deep Dive into Flex 4 Lists and Layouts</a></p>
<p><a href="http://coenraets.org/blog/2009/10/my-max-session-video-posted-model-driven-development-with-flex-4-and-lcds3/" target="_blank">Christophe Coenraets &#8211; Model Driven Development with Flex 4 and LCDS 3</a></p>
<p><a href="http://tv.adobe.com/watch/max-2009-develop/flash-builder-4-advanced-tips-and-tricks/" target="_blank">Scott Evans &#8211; Flash Builder 4 Advanced Tips and Tricks</a></p>
<p><a href="http://tv.adobe.com/watch/max-2009-develop/effects-in-flex-4/" target="_blank">Chet Haase &#8211; Effects in Flex 4</a></p>
<p><a href="http://tv.adobe.com/watch/max-2009-develop/whats-next-in-livecycle-es/" target="_blank">Marcel Boucher &#8211; What&#8217;s Next in Livecycle ES</a></p>
<p>I&#8217;m already looking forward to Adobe MAX 2010 <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/542/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/542/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/542/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/542/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/542/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/542/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/542/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/542/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/542/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/542/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=542&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/10/12/adobe-max-2009-session-slidesresources/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>
	</item>
		<item>
		<title>New Attest PRO version offered in AIR Marketplace Try/Buy Program!</title>
		<link>http://devgirl.wordpress.com/2009/10/06/new-attest-pro-version-offered-in-air-marketplace-trybuyir/</link>
		<comments>http://devgirl.wordpress.com/2009/10/06/new-attest-pro-version-offered-in-air-marketplace-trybuyir/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 21:41:53 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[ACE certification]]></category>
		<category><![CDATA[Flex Certification]]></category>
		<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[Adobe Flex Certification]]></category>
		<category><![CDATA[AIR Marketplace]]></category>
		<category><![CDATA[AIR Try/Buy]]></category>
		<category><![CDATA[Attest]]></category>
		<category><![CDATA[Attest PRO]]></category>
		<category><![CDATA[Flex 3/AIR Certification]]></category>
		<category><![CDATA[Shibuya]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=515</guid>
		<description><![CDATA[We on the Attest team have been hard at work creating a new Attest PRO version that is now offered on the Adobe AIR Marketplace in the new Try/Buy Service announced today at Adobe MAX! Dave and I have been working late hours and weekends implementing a number of new features for this version and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=515&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">We on the Attest team have been hard at work creating a new <a href="http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.offering&amp;offeringid=16227&amp;marketplaceid=1" target="_blank">Attest PRO </a>version that is now offered on the <a href="http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.home&amp;marketplaceid=1" target="_blank">Adobe AIR Marketplace</a> in the new Try/Buy Service announced today at Adobe MAX! <a href="http://davidflatley.com" target="_blank">Dave</a> and I have been working late hours and weekends implementing a number of new features for this version and are particularly excited about being able to participate in the Try/Buy Program.</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-520" title="Picture 15" src="http://devgirl.files.wordpress.com/2009/10/picture-15.png?w=450&#038;h=268" alt="Picture 15" width="450" height="268" /></p>
<p><strong>Attest PRO features:</strong></p>
<ul>
<li><strong>Two Modes</strong> – there are now two modes in Attest, ‘Test’ and ‘Learn’. The Learn mode offers tons of resrouces broken down into the specific categories and topics the Flex/AIR Certification Exam focuses on to help you quickly start studying those areas you will be tested on without having to research them yourself.</li>
<p><img class="aligncenter size-full wp-image-527" title="Picture 19" src="http://devgirl.files.wordpress.com/2009/10/picture-19.png?w=450&#038;h=269" alt="Picture 19" width="450" height="269" /></ul>
<ul>
<li><strong>Randomization</strong> &#8211; this version supports randomization so you never get the same exam twice and cannot memorize the order of questions or answers. This is a huge change from our regular Attest version and we are continuously adding questions to our Attest database so you will keep finding more and more new questions.</li>
<li><strong>New Menu Options</strong>
<ul>
<li><em>Untimed</em> option – you can now select an option to take your tests untimed if you want to use them for practice until you&#8217;re ready to try it with the pressure of time.</li>
<li><em>Show Answer</em> option – new feature to help with studying and provide instant feedback. You can select this option if you&#8217;d like to answer and immediately see if you&#8217;re correct. The Show Answer dialog also shows feedback and documentation links for further study. An example is shown in the 2nd screenshot below:</li>
</ul>
</li>
</ul>
<p><img class="aligncenter size-full wp-image-528" title="Picture 16" src="http://devgirl.files.wordpress.com/2009/10/picture-16.png?w=450&#038;h=270" alt="Picture 16" width="450" height="270" /></p>
<p><img class="aligncenter size-full wp-image-533" title="Picture 26" src="http://devgirl.files.wordpress.com/2009/10/picture-26.png?w=450&#038;h=268" alt="Picture 26" width="450" height="268" /></p>
<ul>
<li><strong>New Questions/Answer Results Renderer</strong> visually shows what you missed quickly so you can drill in for more info in a grid of answers. Clicking in further will take you to another view that will allow you to quickly review every question again with the answer you chose and the correct answer(s) highlighted in green for you to review. Those screens are shown below:</li>
</ul>
<p><img class="aligncenter size-full wp-image-525" title="Picture 21" src="http://devgirl.files.wordpress.com/2009/10/picture-212.png?w=450&#038;h=269" alt="Picture 21" width="450" height="269" /></p>
<p><img class="aligncenter size-full wp-image-526" title="Picture 24" src="http://devgirl.files.wordpress.com/2009/10/picture-242.png?w=450&#038;h=269" alt="Picture 24" width="450" height="269" /></p>
<p><strong>About Adobe Marketplace Try/Buy<br />
</strong><br />
The <a href="http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.home&amp;marketplaceid=1" target="_blank">Try/Buy Service</a> Adobe is offering is allowing Attest PRO to be offered on a trial basis before being purchased. The trial is currently set for 3 days, and will restrict some features in the application until fully purchased.  And of course the free <a href="http://software.pxldesigns.com/attest/" target="_blank">regular Attest version </a>will always still be available for those that do not feel the need to cough up the dough <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>To try out <a href="http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.offering&amp;offeringid=16227&amp;marketplaceid=1" target="_blank">Attest PRO</a>, go <a href="http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.offering&amp;offeringid=16227&amp;marketplaceid=1" target="_blank">here</a></p>
<p>Be sure to check out <a href="http://blog.pxldesigns.com/2009/10/get-flex-3-certified-with-attest-pro-released-at-max/" target="_blank">Dave&#8217;s post </a>about Attest PRO as well for more details.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/515/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=515&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/10/06/new-attest-pro-version-offered-in-air-marketplace-trybuyir/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/10/picture-15.png" medium="image">
			<media:title type="html">Picture 15</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/10/picture-19.png" medium="image">
			<media:title type="html">Picture 19</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/10/picture-16.png" medium="image">
			<media:title type="html">Picture 16</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/10/picture-26.png" medium="image">
			<media:title type="html">Picture 26</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/10/picture-212.png" medium="image">
			<media:title type="html">Picture 21</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/10/picture-242.png" medium="image">
			<media:title type="html">Picture 24</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex 4 Resources &#8211; Samples and Links!</title>
		<link>http://devgirl.wordpress.com/2009/09/04/flex-4-resources-samples-and-links/</link>
		<comments>http://devgirl.wordpress.com/2009/09/04/flex-4-resources-samples-and-links/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 21:08:49 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex 4 Samples]]></category>
		<category><![CDATA[Flex 4 SDK]]></category>
		<category><![CDATA[Tour de Flex]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=473</guid>
		<description><![CDATA[Today we are rolling out the first batch of new Flex 4 samples based on the recent **Flex 4 SDK (update: as of 10/1/2009, all have been updated to work with the latest version of the SDK beta 2 released at MAX). Tour de Flex had a Flex 4 Preview category previously, but the samples [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=473&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Today we are rolling out the first batch of new Flex 4 samples based on the recent **Flex 4 SDK (update: as of 10/1/2009, all have been updated to work with the latest version of the SDK beta 2 released at MAX). <a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank">Tour de Flex</a> had a Flex 4 Preview category previously, but the samples were based on a very early build of Flex 4 and much as changed since then so many were no longer valid.</p>
<p>We recently spent some time with members of the Flex 4 team in San Francisco to get an idea of what had changed, what&#8217;s coming, etc and I&#8217;ve been working on creating new samples to help show off some of the new features. Many more are in the works and will be rolled out weekly while Flex 4 is under continued development, so stay tuned for tons more!</p>
<p><img class="aligncenter" src="http://1.bp.blogspot.com/_bYG0Z1kmQaM/SqGDATn4jkI/AAAAAAAAAGc/yEsEG7o-upQ/s400/f4ss.jpg" alt="" width="400" height="306" /></p>
<p>The Flex 4 team is working hard at addressing concerns previously raised and I think people will find a lot of really cool stuff to come here. Be sure to check out the readme&#8217;s in the various categories with the samples as well as the one in the top Flex 4 Preview folder. I&#8217;ve included some very helpful links that can make the transition so much less painful if you take the time to check them out. I think it is key in overcoming the learning curve quickly. I would also highly recommend spending some time going through the source code in the Flex 4 SDK to understand the architecture better. It was a huge help to me in coming up to speed with it overall. To get the very latest SDK and docs, check <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4" target="_blank">here</a> for nightly builds.</p>
<p>If you have specific requests for a certain sample let me know, or if you&#8217;d like to contribute a sample feel free to contact myself or <a href="http://gregsramblings.com/" target="_blank">Greg Wilson</a> with the sample you&#8217;d like to add. Also, if you have any issues with any sample or questions while trying Flex 4, feel free to contact me here on my blog, <a href="http://twitter.com/devgirlFL" target="_blank">twitter</a> or email and I will see if I can help you out <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="text-decoration:underline;"><strong>Flex 4 &#8211; Useful Links</strong><br />
</span></p>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex4sdk_whatsnew.html" target="_blank">What&#8217;s new in Flex 4</a></li>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html" target="_blank">Differences Between Flex 3 and Flex 4</a></li>
<li><a href="http://livedocs.adobe.com/flex/gumbo/html/index.html" target="_blank">Flex 4 Livedocs</a><span style="color:#999999;"> (may not be most current)</span></li>
<li><a href="http://blog.flexexamples.com/" target="_blank">Flex Examples (Peter DeHaan)</a></li>
<li><a href="http://www.sitepoint.com/article/whats-new-flex-4/" target="_blank">What&#8217;s New and Cool in Flex 4?</a></li>
<li><a href="http://www.insideria.com/2009/06/overview-of-flex-4-gumbo.html" target="_blank">Flex 4 Overview (InsideRIA)</a></li>
<li><a href="http://www.insideria.com/2009/07/flex-4-overview-slides-posted.html" target="_blank">Flex 4 Overview Slides</a></li>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex4_skinning.html" target="_blank">Introduction to Flex 4 Skinning</a></li>
<li><a href="http://labs.adobe.com/technologies/flash/videos/flashcamp/subra_ruehle/" target="_blank">Skinning Components and Applications in Flex 4 &#8211; Video</a></li>
<li><a href="http://www.artima.com/articles/flex_spark.html" target="_blank">Skinning and Components in Flex 4&#8217;s Spark Architecture</a></li>
<li><a href="http://unitedmindset.com/jonbcampos/2009/07/02/flex-4-spark-skinning/" target="_blank">Flex 4 Spark Skinning Post</a></li>
<li><a href="http://www.hulstkamp.com/2009/07/09/custom-popup-rating-component-in-spark-flex-4-gumbo/464" target="_blank">Various Skinning Examples</a></li>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex4_effects_pt1.html" target="_blank">Flex 4 Effects Part 1</a></li>
<li><a href="http://www.adobe.com/devnet/flex/articles/flex4_effects_pt1.html" target="_blank">Flex 4 Effects Part 2</a></li>
<li><a href="http://labs.adobe.com/technologies/flash/videos/flashcamp/haase/" target="_blank">Effects in Flex 4 Video</a></li>
<li><a href="http://graphics-geek.blogspot.com/2009/07/video-stretch-and-squash-in-flex-4.html" target="_blank">Stretch and Squash Effects in Flex 4</a></li>
<li><a href="http://www.adobe.com/devnet/flex/articles/spark_layouts.html" target="_blank">Spark Layouts</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/Spark+Horizontal+and+Vertical+Layout" target="_blank">Spark Horizontal and Vertical Layouts</a></li>
<li><a href="http://www.insideria.com/2009/05/flex-4-custom-layouts.html" target="_blank">Flex 4 and Custom Layouts</a></li>
<li><a href="http://flex4.org/2009/06/23/flex-4-layouts/" target="_blank">Flex 4 Layouts Video</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/Spark+Virtualization" target="_blank">Spark Virtualization</a></li>
<li><a href="http://blog.everythingflex.com/2009/05/12/flex-3-vs-flex-4-state-management/" target="_blank">Flex 3 versus Flex 4 State Management</a></li>
<li><a href="http://pv3d.org/2009/06/22/flex-4-states/" target="_blank">Flex 4 States Video Tutorial</a></li>
<li><a href="http://labs.adobe.com/technologies/flash/videos/flashcamp/lafferty/" target="_blank">Advanced CSS Video</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/CSS+Namespaces+Support" target="_blank">Flex 4 CSS Namespaces</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/FXG+1.0+Specification" target="_blank">Flex 4 &#8211; CSS Advanced Selectors</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/FXG+1.0+Specification" target="_blank">FXG 1.0 Specification</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/tlf/Text+Layout+Framework" target="_blank">Text Layout Framework (TLF)</a></li>
<li><a href="http://www.slideshare.net/MatthewFabb/overview-of-text-layout-framework-presentation" target="_blank">Text Layout Framework Overview Slides</a></li>
<li><a href="http://ayonesoftware.com/blog/2009/08/linked-containers-in-flex-4-using-text-layout-framework/" target="_blank">Linked Containers in Flex 4 using Text Layout Framewo<span style="text-decoration:underline;">rk</span></a></li>
<p>I will continue to update this list. Please feel free to comment with your favorites!</p>
<p>Also, please note, the Tour de Flex samples are best viewed in the <a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank">AIR version of Tour de Flex</a>. When using the <a href="http://www.adobe.com/devnet/flex/tourdeflex/web/" target="_blank">web version</a>, we recommend hitting the expand button in the top right corner to see the full sample better. Sizing issues are currently being worked on.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/473/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/473/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/473/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=473&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/09/04/flex-4-resources-samples-and-links/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>

		<media:content url="http://1.bp.blogspot.com/_bYG0Z1kmQaM/SqGDATn4jkI/AAAAAAAAAGc/yEsEG7o-upQ/s400/f4ss.jpg" medium="image" />
	</item>
		<item>
		<title>Real-Time Data Visualization at Adobe MAX 2009!</title>
		<link>http://devgirl.wordpress.com/2009/08/11/real-time-data-visualization-at-adobe-max-2009/</link>
		<comments>http://devgirl.wordpress.com/2009/08/11/real-time-data-visualization-at-adobe-max-2009/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 14:46:33 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[LiveCycle Data Services]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Adobe MAX]]></category>
		<category><![CDATA[Data Visualization]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[ILOG]]></category>
		<category><![CDATA[MAX]]></category>
		<category><![CDATA[MAX 2009]]></category>
		<category><![CDATA[Real-time]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=441</guid>
		<description><![CDATA[If you don’t know it already, the Adobe MAX conference is always a great learning and networking experience and this year it is sounding better than ever. They’re offering some new things I believe will really help developers get the most out of their experience with the addition of more lab-type sessions, Birds of a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=441&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you don’t know it already, the <a href="http://max.adobe.com/" target="_blank">Adobe MAX </a>conference is always a great learning and networking experience and this year it is sounding better than ever. They’re offering some new things I believe will really help developers get the most out of their experience with the addition of more lab-type sessions, Birds of a Feather discussions at lunch-time etc and more sessions overall. There will also be a ton more content this year focusing on LiveCycle ES and Enterprise RIA which is particularly cool to me as someone who works on both the client and server side and want to know my options for different business solutions. And of course there are always the sessions focusing on Adobe’s creative tools, not to mention really big secret announcements and a sneak peek at upcoming coolness seen only there first.</p>
<p>As a developer attending a conference, I have always been one to seek out as many lab-type sessions as possible believing in the extended benefit of working on something hands-on while learning. The Adobe people must have realized the value in this as well and decided to offer a new alternative to lab-type sessions called <a href="http://max.adobe.com/sessions/byol/" target="_blank">BYOL – (Bring Your Own Laptop),</a> where you can use your own laptop to work along with the class. You will still be given a handout of the code lessons etc but instead of using a workstation provided, you simply use your own laptop. The biggest pro here is that you are comfortable on your own laptop already and will have the final version without having to copy it off quickly before getting to your next session. You will however have to be sure that you have the necessary requirements for the class on your laptop prior to attending, and these requirements are posted along with the session details on the <a href="http://max.adobe.com/" target="_blank">MAX portal</a>.</p>
<p>This year I’m fortunate enough to have the opportunity to co-present a session on two different days with <a href="http://gregsramblings.com/" target="_blank">Greg Wilson</a> entitled, &#8220;Making Real-Time Data Come Alive with Flex Data Visualization.&#8221; I’m very excited about this session because I think it’s a topic that is great fun and offers a unique learning experience by giving people a taste of not only using data visualization with real-time data, but experience using Messaging with Data Services on BlazeDS.  From this session you will learn how to do push-subscribe messaging acting in both a publisher and subscriber role as well as how to take real-time data and visualize it in a Flex Charting component. We will also talk about the <a href="http://www.adobe.com/devnet/flex/tourdeflex/planetary_dashboard/" target="_blank">Tour de Flex Dashboard,</a> so you are sure to walk away with some really cool stuff here.</p>
<p>The session times are Monday, Oct 5th at 2:30pm and Wednesday, Oct 7th at 1:30pm. So if you have not already registered for Adobe MAX 2009 then what are you waiting for?! Hope to see you soon in L.A. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><img class="aligncenter size-full wp-image-450" title="MAX-Lesson" src="http://devgirl.files.wordpress.com/2009/08/max-lesson.png?w=432&#038;h=282" alt="MAX-Lesson" width="432" height="282" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/441/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=441&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/08/11/real-time-data-visualization-at-adobe-max-2009/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/08/max-lesson.png" medium="image">
			<media:title type="html">MAX-Lesson</media:title>
		</media:content>
	</item>
		<item>
		<title>LiveCycle Data Services &#8211; Channels and Endpoints Explained!</title>
		<link>http://devgirl.wordpress.com/2009/07/14/livecycle-data-services-channels-and-endpoints-explained/</link>
		<comments>http://devgirl.wordpress.com/2009/07/14/livecycle-data-services-channels-and-endpoints-explained/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 16:28:37 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[LiveCycle Data Services]]></category>
		<category><![CDATA[BlazeDS channel]]></category>
		<category><![CDATA[endpoint]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[LCDS channel]]></category>
		<category><![CDATA[LCDS endpoint]]></category>
		<category><![CDATA[LiveCycle Data Services channel]]></category>
		<category><![CDATA[LiveCycle Data Services RTMP]]></category>
		<category><![CDATA[NIO]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=374</guid>
		<description><![CDATA[As a follow-up to my LCDS Quick Start Guide, I wanted to offer more in-depth information about using channels and endpoints with your LiveCycle Data Services application. What is a channel and what is an endpoint ultimately? A &#8216;channel&#8217; is the term used for the client-side code to manage the connection, and the &#8216;endpoint&#8217; is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=374&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As a follow-up to my <a href="http://devgirl.wordpress.com/2009/06/16/livecycle-data-services-lcds-quick-start/">LCDS Quick Start Guide</a>, I wanted to offer more in-depth information about using channels and endpoints with your LiveCycle Data Services application. What is a channel and what is an endpoint ultimately? A &#8216;channel&#8217; is the term used for the client-side code to manage the connection, and the &#8216;endpoint&#8217; is the term used for the server-side code or configuration that manages the connection. So for a Flex client to communicate with LiveCycle Data Services, a channel must be defined for the client side to communicate with the endpoint on the server-side. The data is sent across the channel in a network-specific format to the endpoint. The endpoint code (Java) reads the data that comes across the channel and determines which service to route that data to.  In this case, a service is just another set of code that will be used to process the data sent over the channel and refers to either a remoting service, a data management service, messaging service or an HTTP Proxy service.  The channel and endpoint definition are configured and associated in the services-config.xml file via  tags, such as the following:</p>
<pre>&lt;channel-definition id="samples-amf" type="mx.messaging.channels.AMFChannel"&gt;
        &lt;endpoint url="http://servername:8400/myapp/messagebroker/amf" port="8700"
            type="flex.messaging.endpoints.AMFEndpoint"/&gt;
&lt;/channel-definition&gt;</pre>
<p>where the &#8216;id&#8217; attribute refers to the client side channel and &#8216;type&#8217; refers to the client-side code class type. The associated endpoint element is included as a child of the channel definition to show what server-side endpoint should be used when that client-side channel is used. The &#8216;url&#8217; attribute on the endpoint must be unique across endpoints, and points to either the <a href="http://livedocs.adobe.com/blazeds/1/javadoc/flex/messaging/MessageBrokerServlet.html" target="_blank">MessageBrokerServlet </a>or an NIO based server depending on what implementation you are using. The above example shows the use of the MessageBrokerServlet.</p>
<p><a href="http://coenraets.org/" target="_blank">Christophe Coenraets</a> presents on LCDS and BlazeDS often, and has great summary information in those presentations regarding channel usage. I took details from his slides and summarized them in the text below because I think it&#8217;s very valuable information for people to know.</p>
<p><strong>Simple Polling</strong></p>
<ul>
<li>Near real-time</li>
<li>May use when you only expect to have 100-150 connections max.<strong><br />
</strong></li>
</ul>
<pre style="padding-left:30px;">&lt;channel-definition id="my-amf"&gt;
    &lt;endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling"/&gt;
    &lt;polling-enabled&gt;true&lt;/polling-enabled&gt;
    &lt;polling-interval-millis&gt;8000&lt;/polling-interval-millis&gt;
&lt;/channel-definition&gt;<strong>
</strong></pre>
<p><strong>Long polling with piggybacking</strong></p>
<p><strong> </strong></p>
<ul>
<li>Similar to traditional poll, but if no data available, server “parks” poll request until data becomes available or configured server wait interval elapses.</li>
<li>Client can be configured to issue next poll immediately following a poll response making this channel configuration feel very “real-time”.</li>
</ul>
<p style="padding-left:30px;"><strong>Pros<br />
</strong></p>
<ul>
<li>HTTP request/response pattern over standard ports. No firewall/proxy/network issue.</li>
</ul>
<p style="padding-left:30px;"><strong>Cons</strong></p>
<ul>
<li> Overhead of a poll roundtrip for every message when many messages are being pushed</li>
<li> Servlet API uses blocking IO.  You must define an upper bound for the number of long poll requests parked on the server</li>
</ul>
<pre style="padding-left:30px;">Example:
&lt;channel-definition id="my-amf"&gt;
    &lt;endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling“/&gt;
    &lt;polling-enabled&gt;true&lt;/polling-enabled&gt;
    &lt;polling-interval-millis&gt;8000&lt;/polling-interval-millis&gt;
    &lt;piggybacking-enabled&gt;true&lt;/piggybacking-enabled&gt;
    &lt;wait-interval-millis&gt;60000&lt;/wait-interval-millis&gt;
    &lt;client-wait-interval-millis&gt;1&lt;/client-wait-interval-millis&gt;
    &lt;max-waiting-poll-requests&gt;200&lt;/max-waiting-poll-requests&gt;
&lt;/channel-definition&gt;<strong>
</strong></pre>
<p>The following illustration is taken from the <a href="http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/" target="_blank">Adobe LiveCycle Data Services Developer&#8217;s Guide</a> and is helpful in showing the difference between for standard polling versus long polling. The description of it, taken from the dev guide is as follows: &#8220;In the standard polling scenario, the client constantly polls the server for new messages even when no messages are yet available. In contrast, in the long polling scenario the poll response thread waits for messages to be available and then returns the messages to the client.&#8221;</p>
<p><img class="aligncenter size-full wp-image-429" title="Picture 70" src="http://devgirl.files.wordpress.com/2009/07/picture-701.png?w=450&#038;h=323" alt="Picture 70" width="450" height="323" /></p>
<p><strong>Streaming AMF</strong>/<strong>HTTP Streaming</strong></p>
<ul style="padding-left:30px;">
<li>Because HTTP connections are not duplex, this channel sends a request to “open” a HTTP connection between the server and client, over which the server will write an infinite response of pushed messages.</li>
<li>Uses separate connection from browser’s connection pool for each send it issues to server.</li>
<li>Each message is pushed as an HTTP response chunk (HTTP 1.1 Transfer-Encoding: chunked).</li>
</ul>
<p style="padding-left:30px;"><strong>Pros</strong></p>
<ul style="padding-left:30px;">
<li>No polling overhead associated with pushing messages to the client.</li>
<li>Uses standard HTTP ports. No firewall issue and all requests/responses are HTTP so packet inspecting proxies won’t drop the packets.</li>
</ul>
<p style="padding-left:30px;"><strong>Cons</strong></p>
<ul style="padding-left:30px;">
<li>Holding “open” request on the server and writing an infinite response is not “nice” HTTP behavior. HTTP proxies that buffer responses before forwarding them can effectively swallow the stream.  Assign the channel’s ‘connect-timeout-seconds’ property a value of 2 or 3 to detect this and trigger fallback to the next channel in your ChannelSet.</li>
<li>No support for HTTP 1.0 clients.</li>
<li>Servlet API uses blocking IO. You must define a upper bound for the number of streaming connections you allow.</li>
</ul>
<pre style="padding-left:30px;">Example:
&lt;channel-definition id="my-streaming-amf"&gt;
    &lt;endpoint url="http://localhost:8400/messagebroker/streamingamf"/&gt;
&lt;/channel-definition&gt;</pre>
<p><strong>RTMP</strong></p>
<ul style="padding-left:30px;">
<li>Single duplex socket connection to the server.</li>
<li>If direct connect fails, the Player will attempt a CONNECT tunnel through an HTTP proxy if one is defined by the browser.</li>
</ul>
<p style="padding-left:30px;"><strong>Pros</strong></p>
<ul style="padding-left:30px;">
<li>Single, stateful duplex socket that gives clean, immediate notification when a client is closed. The HTTP-based channels/endpoints generally don&#8217;t receive notification of a client going away until the HTTP session on the server times out.</li>
<li>The player internal fallback to HTTP CONNECT trick to traverse an HTTP proxy if one is configured in the browser gives the same pro as above (technique not available from ActionScript or Javascript).</li>
</ul>
<p style="padding-left:30px;"><strong>Cons</strong></p>
<ul style="padding-left:30px;">
<li>Generally uses a non-standard port so it is often blocked by client firewalls.</li>
<li>Network components that do stateful packet inspection may also drop RTMP packets, killing the connection.</li>
</ul>
<pre style="padding-left:30px;">Example:
&lt;channel-definition id="my-rtmp"&gt;
    &lt;endpoint url="rtmp://{server.name}:2037"/&gt;
    &lt;properties&gt;
        &lt;idle-timeout-minutes&gt;20&lt;/idle-timeout-minutes&gt;
    &lt;/properties&gt;
&lt;/channel-definition&gt;</pre>
<p><strong>NIO Channels<br />
</strong></p>
<ul style="padding-left:30px;">
<li>NIO stands for <a href="http://java.sun.com/developer/technicalArticles/releases/nio/" target="_blank">Java New Input/Output</a> and is basically a Java socket server completely separate from the servlet-based server-side option.</li>
<li>The same channels as previously described are available through an embedded NIO Server.</li>
<li>This option offers much better scalability and no configured upper bound on the number of parked poll requests.</li>
<li>Because the servlet pipeline is not being used, this endpoint requires more network configuration to route requests to it on a standard HTTP port if you need to concurrently service HTTP servlet requests.</li>
<li>NIO endpoints use the Java NIO API to service a large number of client connections in a non-blocking, asynchronous fashion using a worker thread pool, therefore the limitation of the servlet option using one thread is removed and a single thread of an NIO server can service multiple I/O&#8217;s.</li>
</ul>
<p style="padding-left:30px;"><strong>NIO AMF example<br />
</strong></p>
<pre style="padding-left:30px;">&lt;channel-definition id="my-nio-amf"&gt;
    &lt;endpoint url="http://{server.name}:2080/nioamf"/&gt;
    &lt;server ref="my-nio-server"/&gt;
    &lt;properties&gt;
        &lt;polling-enabled&gt;false&lt;/polling-enabled&gt;
    &lt;/properties&gt;
&lt;/channel-definition&gt;<strong>
</strong></pre>
<p><strong>NOTE</strong>: BlazeDS only supports the following channel types:</p>
<ul style="padding-left:30px;">
<li>Polling</li>
<li>Long polling</li>
<li>Long polling with piggybacking</li>
<li>HTTP Streaming</li>
</ul>
<p><strong>Configuring Channels</strong></p>
<p style="padding-left:30px;">Channels can be specified on the client-side via the configuration of the -services compiler option in your project setup, or programmed at runtime. If done at runtime, they are coded into the client MXML or ActionScript directly, therefore no <em>–services</em> compiler option is specified on the project. This also means that the specific endpoint URL does not have to be compiled into the client SWF. In this case it is much more flexible in that you could simply create an XML file with your endpoint URLs in it depending on the environment, and connect with an HTTPService in your client to read them in at initialization. More detailed information regarding defining channels can be found here: http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/help.html?content=lcoverview_4.html</p>
<p style="padding-left:30px;">Below are screen shots to show you how to set up your LCDS project with the compiler options etc:</p>
<p style="padding-left:30px;"><img class="aligncenter size-large wp-image-387" title="Flex Server Properties" src="http://devgirl.files.wordpress.com/2009/07/picture-64.png?w=1024&#038;h=533" alt="Flex Server Properties" width="1024" height="533" /><br />
<img class="aligncenter size-large wp-image-396" title="Compiler Options" src="http://devgirl.files.wordpress.com/2009/07/picture-65.png?w=1024&#038;h=471" alt="Compiler Options" width="1024" height="471" /></p>
<p style="padding-left:30px;">However, as noted in the previous paragraph, you can completely skip all the above project setup and define your channels for runtime use. An example of this is shown below:</p>
<pre style="padding-left:30px;">&lt;mx:ChannelSet id="channelSet"&gt;
    &lt;mx:RTMPChannel id="rtmpChannel" url="rtmp://tourdeflex.adobe.com:2037"/&gt;
&lt;/mx:ChannelSet&gt;</pre>
<p style="padding-left:30px;">You can also code it in ActionScript if desired, such as the following:</p>
<pre style="padding-left:30px;">var cs = new ChannelSet();
cs.addChannel(new RTMPChannel("my-rtmp", "rtmp://localhost:2035"));
cs.addChannel(new AMFChannel("my-polling-amf","http://servername:8400/app/messagebroker/amfpolling"));</pre>
<p style="padding-left:30px;">You then use that defined ChannelSet on your DataService object as follows:</p>
<pre style="padding-left:30px;">&lt;mx:DataService id="ds" destination="product2" channelSet="{channelSet}"/&gt;</pre>
<p>This can be done for any of the LiveCycle Data Services objects you are working with, including RemoteObject, Producer/Consumer objects for Messaging etc&#8230;</p>
<p style="padding-left:30px;">An example of this with remoting is below:</p>
<pre style="padding-left:30px;">&lt;mx:ChannelSet id="channelSet"&gt;
   &lt;mx:AMFChannel id="amfChannel" url="http://tourdeflex.adobe.com:8080/lcds-samples/messagebroker/amf" /&gt;
&lt;/mx:ChannelSet&gt;
&lt;mx:RemoteObject id="myService" destination="userService" channelSet="{channelSet}" result="onResult(event)" fault="onFault(event)"/&gt;</pre>
<p style="padding-left:30px;">Many other examples of this can be found in the <a href="http://www.adobe.com/devnet/flex/tourdeflex/web/#sampleId=11020;illustIndex=0;docIndex=-1" target="_blank">Flex Data Access</a> section of <a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank">Tour de Flex</a>.</p>
<p><strong>General Guidelines</strong></p>
<p>So when to use which channel? Below are some general guidelines. For more detailed information, see the <a href="http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/" target="_blank">LiveCycle Data Services Developer&#8217;s Guide</a>:</p>
<ul style="padding-left:30px;">
<li>Use AMF channels for Remoting</li>
<li>The order of preference in choosing channels in general, particularly based on latency (other then when using Remoting):
<ul>
<li>RTMP</li>
<li>Streaming AMF (1st choice for BlazeDS since RTMP is not supported there)</li>
<li>Long Polling</li>
<li>Polling</li>
<p><strong>Important Note:</strong> you can code multiple channels at runtime and LCDS will use them in order of declaration. If there is a problem, such as a firewall issue with RTMP, then the next channel in the code will be tried. It is a good practice to add a regular polling channel as the last channel in order since it will always work as a fallback. An example of how this would look in the code is shown below:</ul>
</li>
<pre>      &lt;mx:ChannelSet id="channelSet"&gt;
         &lt;!-- RTMP channel --&gt;
         &lt;mx:RTMPChannel id="rtmp" url="rtmp://tourdeflex.adobe.com:2037"/&gt;
         &lt;!-- Long Polling Channel --&gt;
         &lt;mx:AMFChannel url="http://tourdeflex.adobe.com:8080/lcds-samples/messagebroker/amflongpolling"/&gt;
         &lt;!-- Regular polling channel --&gt;
         &lt;mx:AMFChannel url="http://tourdeflex.adobe.com:8080/lcds-samples/messagebroker/amfpolling"/&gt;
     &lt;/mx:ChannelSet&gt;</pre>
<li>If you need scalability and are using LCDS (versus BlazeDS), opt for the NIO based channels. Note that in this case though you will not have access to any HttpSession data etc since it is not servlet-based.</li>
<li>Use AMF channels over HTTP-based channels since the data is passed in binary format versus text/XML and will be much faster.</li>
<li>Choose Long-polling or streaming over simple polling.</li>
<li><a href="http://www.dcooper.org/Blog/client/index.cfm" target="_blank">Damon Cooper</a> has an excellent summary of the various channels with more detail on when to use which <a href="http://www.dcooper.org/Blog/client/index.cfm?mode=entry&amp;entry=8E1439AD-4E22-1671-58710DD528E9C2E7" target="_blank">here</a>, definitely recommend reading through this post.</li>
<li><a href="http://www.infoq.com/articles/Blaze-LiveCycle" target="_blank">InfoQ article</a> describing the differences between choosing LiveCycle Data Services versus BlazeDS. More detailed channel and endpoint information here too, very interesting and detailed read.</li>
</ul>
<p>And lastly&#8230; if you&#8217;re like me and really need to understand what is happening under the covers with all of this rather than assuming the magical black box, I recommend reading at least this one page of the <a href="http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/help.html?content=lcarch_3.html" target="_blank">Adobe LiveDocs for LCDS</a>. It was eye-opening for me!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/374/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=374&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/07/14/livecycle-data-services-channels-and-endpoints-explained/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/07/picture-701.png" medium="image">
			<media:title type="html">Picture 70</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/07/picture-64.png?w=1024" medium="image">
			<media:title type="html">Flex Server Properties</media:title>
		</media:content>

		<media:content url="http://devgirl.files.wordpress.com/2009/07/picture-65.png?w=1024" medium="image">
			<media:title type="html">Compiler Options</media:title>
		</media:content>
	</item>
		<item>
		<title>LiveCycle Data Services (LCDS) &#8211; Quick Start</title>
		<link>http://devgirl.wordpress.com/2009/06/16/livecycle-data-services-lcds-quick-start/</link>
		<comments>http://devgirl.wordpress.com/2009/06/16/livecycle-data-services-lcds-quick-start/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 13:29:49 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[LiveCycle Data Services]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[LCDS]]></category>
		<category><![CDATA[LCDS Samples]]></category>
		<category><![CDATA[LiveCycle Data Services Tutorial]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=318</guid>
		<description><![CDATA[With the recent work I’ve been doing to add LiveCycle Data Services samples to the Flex Data Access category for Tour de Flex, I felt the need to add some additional helper information to assist people in getting started using it quickly. I’m including some basic information on how to configure the client (using Flex [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=318&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>With the recent work I’ve been doing to add <a href="http://www.adobe.com/products/livecycle/dataservices/" target="_blank">LiveCycle Data Services </a>samples to the Flex Data Access category for Tour de Flex, I felt the need to add some additional helper information to assist people in getting started using it quickly. I’m including some basic information on how to configure the client (using Flex 3) and server side, and provide links to more detailed information as needed. This post is not intended to explain all things Data Services, but I am hoping to provide some overview information for those just beginning to take a look at it, as well as some helpful info and links that might be needed to get on board fast!</p>
<p>So… you want to use Data Services, where do you begin? First I suggest you think about and try to answer the following questions:</p>
<ul>
<li><em>What kind of data access do I need or what does the service need to do?</em></li>
<li><em>What platform/language do I need to use (Java, .NET, Cold Fusion etc)?</em></li>
<li><em>Will there be a database needed, and if so how complex will the table structure be?</em></li>
<li><em>Will there be any other layers involved, such as Hibernate for instance?</em></li>
</ul>
<p><strong>LiveCycle Data Services (LCDS) &#8211; Feature Overview</strong></p>
<p>First, a quick overview of the different features provided by LCDS&#8230;</p>
<p style="padding-left:30px;"><strong>RPC Services<br />
</strong>Making calls to a remote service or operation is super easy using LCDS. There are various ways to achieve this depending on protocol you want to use etc&#8230; they include an HTTP call (using the <a href="http://livedocs.adobe.com/flex/3/langref/mx/rpc/http/mxml/HTTPService.html" target="_blank">HTTPService</a> class),  a SOAP call (using the <a href="http://livedocs.adobe.com/flex/3/langref/mx/rpc/soap/mxml/WebService.html">WebService</a> class) or using AMF via Remoting (using the <a href="http://livedocs.adobe.com/flex/3/langref/mx/rpc/remoting/RemoteObject.html" target="_blank">RemoteObject</a> class). I strongly encourage using Remoting where possible due to the significant gains in response time. <a href="http://www.jamesward.com/" target="_blank">James Ward</a> has a fantastic and powerful example of different response times for different types of invocations <a href="http://www.jamesward.com/census/" target="_blank">here</a>. The best way to use this app is to select the ‘Census &#8211; Guide Me’ option from the drop down list and go through each type of call to get the full effect of response times.<br />
<strong> </strong></p>
<p style="padding-left:30px;"><strong>Data Management<br />
</strong>If you need to persist and manage data between clients, LiveCycleData Service&#8217;s Data Management is definitely the way to go. Using the <a href="http://livedocs.adobe.com/livecycle/8.2/programLC/common/langref/mx/data/DataService.html" target="_blank">DataService</a> object, you are immediately given amazing power over your data, including CRUD operations (Create, Read, Update, Delete) with conflict management handling options, auto-commit of data, persisting to a local cache when offline (in an AIR app), and so much more. And what&#8217;s even better is the little bit of code needed to make all of this happen! It is still totally amazing to me how powerful yet easy it can be compared to anything I’ve done in the past. The <a href="http://www.adobe.com/devnet/flex/tourdeflex/web/" target="_blank">Tour de Flex</a> samples for Data Management are the best resource to check out to get started in this area quickly.</p>
<p style="padding-left:30px;"><strong>Messaging<br />
</strong>The most common use of messaging is in a one-to-many relationship, when there is information that should be broadcast real-time to many at once. This is often called publish-subscribe messaging, or topic-based messaging. The topic is the shared item that a ‘producer’ (the one sending the message) and the ‘consumer’ (the one receiving the message) both subscribe to. A general but explanatory example often used for publish-subscribe messaging is that of subscribing to a stock ticker topic that is broadcasting all of the stock prices real-time to its subscribers. Another type of messaging supported by LCDS is point-to-point messaging, which involves a one-to-one relationship. All of this is described in-depth in the <a href="http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/help.html?content=lcoverview_4.html" target="_blank">LCDS Developer documentation</a> for those looking for more information. Adobe offers the open-source BlazeDS that offers most of the same Messaging features as well. More info on BlazeDS is given later in this post.</p>
<p><strong>What next? </strong></p>
<p>So once you decide what you need to do and which LCDS features you need to use, I recommend going to the Flex Data Access category in <a href="http://www.adobe.com/devnet/flex/tourdeflex/web/" target="_blank">Tour de Flex</a> and locating a sample for the specific area of LCDS you’re planning on implementing. If your solution involves  server side code, for instance if you’re doing Remoting or Data Management, the following steps detail what you should do next to configure the server side:</p>
<p style="padding-left:30px;"><strong>Server-side Configuration Steps</strong><br />
1.    Create your project in your favorite IDE (I use <a href="http://www.eclipse.org/" target="_blank">Eclipse</a>) and be sure to include the following libraries (found in the LCDS or BlazeDS install packages):</p>
<p style="padding-left:30px;">a.   acrobat-core.jar<br />
b.   acrobat-core-charset.jar<br />
c.   backport-util-concurrent.jar<br />
d.   cfdataservicesadapter.jar – (Cold Fusion only)<br />
e.   cfgatewayadapter.jar (Cold Fusion only)<br />
f.    commons-codec-1.3.jar<br />
g.   commons-httpclient-3.0.1.jar<br />
h.   commons-logging.jar<br />
i.    concurrent.jar<br />
j.    flex-acrobat<br />
k.   flex-messaging-common.jar<br />
l.    flex-messaging-core.jar<br />
m.  flex-messaging-data.jar<br />
n.   flex-messaging-data-req.jar<br />
o.   flex-messaging-opt.jar<br />
p.   flex-messaging-proxy.jar<br />
q.   flex-messaging-remoting.jar</p>
<p style="padding-left:30px;">2.    Create a destination in the appropriate XML configuration file (remoting-config.xml, data-management-config.xml etc.)  The next section has more information about configuration files and LCDS.</p>
<p style="padding-left:30px;">3.    Point the destination to the appropriate server side ‘assembler’, (if using Data Management) or class you are using to perform the server side RPC operations and set required parameters on that destination.</p>
<p style="padding-left:30px;">Note:  An assembler is a general term for the server side code that will be used to process your interactions with your data. There are a few different types of assemblers built into LCES, or you can extend their AbstractAssembler class to create your own custom class. Examples of each are part of the recent additions to Tour de Flex, and more information about the Java classes used can be found <a href="http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/javadoc/index.html" target="_blank">here</a></p>
<p style="padding-left:30px;">4.    Copy your compiled class files for your service or assembler into the WEB-INF/classes directory. Ensure any other configuration files needed for things like a Hibernate integration etc are added to their appropriate server location as well. Note: <a href="http://www.adobe.com/devnet/flex/tourdeflex/web/" target="_blank">Tour de Flex </a>has more information regarding configuring LCDS with Hibernate.</p>
<p>For a detailed explanation of the server side configuration needed for your web application that uses LCDS, see <a href="http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/help.html?content=lcoverview_4.html" target="_blank">here</a>.</p>
<p style="padding-left:30px;"><strong>Client-side Configuration Steps</strong><br />
1.    Create your Flex project. There are actually a couple ways you can go about doing this. The conventional way will include your required libraries in the build path and set up your compiler options as needed (adding the –services option) so you are ready to use the various LCDS components in your application. However, I personally find the non-conventional way along with using runtime configuration of channels easier and feel that I have more control over it that way.</p>
<p style="padding-left:30px;">a.    Conventional way: this <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=projects_3.html" target="_blank">link</a> sums it up<br />
b.    Non-conventional way: create a basic Flex project (no server specified) and add the necessary SWC’s to the included libraries for the build path (fds.swc, playerfds.swc and the locale folder found in your webapps WEB-INF/flex/libs folder). Note: these SWC’s are also shipped with LCDS</p>
<p style="padding-left:60px;">As I said above, using this option requires you to use runtime channel definitions and set them on your LCDS components, but also offers you full control over which channel is used when, and allows you to easily switch where one is pointing (for instance localhost versus another server destination). Also important to note, configuring this way does not require the services configuration to be compiled into your SWF. An example of configuring channels at runtime is shown below, and used in all of the <a href="http://www.adobe.com/devnet/flex/tourdeflex/web/" target="_blank">Tour de Flex </a>Data Access samples:</p>
<pre style="padding-left:30px;">    &lt;mx:ChannelSet id="channelSet"&gt;</pre>
<pre style="padding-left:30px;">         &lt;mx:RTMPChannel id="rtmpChannel" url="rtmp://tourdeflex.adobe.com:2037"/&gt;</pre>
<pre style="padding-left:30px;">    &lt;/mx:ChannelSet&gt;</pre>
<pre>        &lt;mx:DataService id="ds" destination="hibernate-contact" autoCommit="false" channelSet="{channelSet}" fault="onFault(event)"/&gt;</pre>
<p><strong>Config file C-R-A-Z-Y! Why are there so many configuration files and what are they used for?</strong></p>
<p>When I first started using LCDS, it seemed a little confusing to me that there were so many different XML files for configuring things, I was just accustomed to having to edit one main config file for many of the things I had worked on, so to have to touch all the different ones for the different services seemed a bit overwhelming at first.</p>
<p>Now that I have worked with it for awhile, I realize there really is one main configuration file called services-config.xml, and it just includes the rest of the config files for the specific services (remoting-config.xml, data-management-config.xml, messaging-config.xml etc).  The services-config file defines channels, logging and security settings, and then has the includes for the rest of the configuration files.  You would typically not specify application level destinations here, but would put them in the appropriate *-config.xml file based on the guidelines below:</p>
<p><strong>remoting-config.xml</strong> – set up your destinations used for remoting here (ie: RemoteObject from your Flex client)</p>
<p><strong>data-management-config.xml </strong>– set up your destinations for Data Management applications here (ie: those referred to from the DataService object in your Flex client).</p>
<p><strong>messaging-config.xml </strong>– set up your destinations for messaging applications here (ie: those referred to from  Producer/Consumer objects from your Flex client).<br />
<strong> </strong></p>
<p><strong>proxy-config.xml</strong> &#8211; defines Proxy Service destinations for working with web services and HTTP services (REST services).</p>
<p><strong>Channel Confusion! Which, when and why?</strong></p>
<p>Channels are used in LCDS to provide the transport of your data from end to end over a specified protocol (HTTP, AMF, RTMP etc).  They specify an endpoint for your data to be sent to as well as handle how it should get there. Channels are defined in the services-config.xml file, and there are many different types that can be defined for them. It can be very confusing to try to read the documentation given and figure out what you actually need. <a href="http://www.dcooper.org/blog" target="_blank">Damon Cooper</a> has a fantastic and detailed summary of the different channels depending on what you might need located <a href="http://www.dcooper.org/Blog/client/index.cfm?mode=entry&amp;entry=8E1439AD-4E22-1671-58710DD528E9C2E7" target="_blank">here</a>.</p>
<p><strong>BlazeDS</strong></p>
<p><a href="http://opensource.adobe.com/wiki/display/site/Home" target="_blank">BlazeDS</a> is the remoting and HTTP-based messaging technology Adobe is contributing to the community under LGPL v3. BlazeDS offers publication of the Action Message Format (AMF3) binary data protocol specification. Certified builds, warranty protection and enterprise support subscriptions are available. A comparison of the features included in LCDS versus BlazeDS can be found <a href="http://sujitreddyg.wordpress.com/2008/01/31/blazeds-and-lcds-feature-difference/" target="_blank">here</a>. There&#8217;s also a full test drive available in BlazeDS you can use to check out the included features.</p>
<p><strong>References </strong></p>
<p style="padding-left:30px;"><strong>The LCDS Gurus<br />
</strong><br />
<a href="http://coenraets.org/" target="_blank">Christophe Coenraets</a> &#8211; site includes TONS of cool samples using more advanced LCDS features and information. Christophe has a way of explaining the more complex features in a manner that seems much less intimidating and always supplies source code so you can see exactly what he did to make something happen.<br />
<a href="http://sujitreddyg.wordpress.com/" target="_blank">Sujit Reddy G </a>- again lots of great info on LCDS, BlazeDS and more, but some particularly helpful info on using Flash Builder 4 with Data Access.<br />
<a href="http://www.drflex.eu/" target="_blank">Dr Flex</a> &#8211; a very cleverly written site packed with some great and useful information on a variety of topics.<br />
<a href="http://cornelcreanga.com/" target="_blank">Cornel Creanga</a> -  former J2EE Software Developer turned Adobe Evangelist with a lot of useful information and samples to check out.<br />
<a href="http://gregsramblings.com/" target="_blank">Greg Wilson</a> &#8211;  great blogger and Adobe Evangelist with a bunch of LCDS, LiveCycle and Tour de Flex sample information.<br />
<a href="http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/" target="_blank">LCDS Livedocs/Developer’s Guide</a> &#8211; in-depth information related to Data Services, includes all the details for the subject matter covered in this post.</p>
<p><strong>LiveCycle Data Services &#8211; included samples</strong> &#8211; included in <a href="http://www.adobe.com/products/livecycle/dataservices/" target="_blank">LCDS</a> is a great set of samples that show off the different features. Some of these were already the basis of the samples added recently to <a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank">Tour de Flex</a>, but it is in you best interest to start by installing LCDS, running the samples locally to see how they work, and then checking out the included source code. For instance, when running locally your path to the LCDS samples webapp might be: http://localhost:8080/lcds-samples/ depending on your configuration. Don’t miss the ‘Take the Test Drive’ option as well&#8230; that is actually the best place to start as some of the other samples on the main samples page become a bit more advanced.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/318/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=318&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/06/16/livecycle-data-services-lcds-quick-start/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>
	</item>
		<item>
		<title>Launch an AIR application from within another AIR application</title>
		<link>http://devgirl.wordpress.com/2009/06/08/launch-an-air-app-from-within-another-air-app/</link>
		<comments>http://devgirl.wordpress.com/2009/06/08/launch-an-air-app-from-within-another-air-app/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 13:15:53 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[launch AIR app]]></category>
		<category><![CDATA[open AIR app from AIR app]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=310</guid>
		<description><![CDATA[Have you ever needed to launch another AIR application from within an AIR application? I have found myself wondering how this would be done exactly, and noticed that Rich Tretola just did a great blog post this morning on two ways to do it, including source code. He presented the solutions at 360 &#124; Flex [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=310&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Have you ever needed to launch another AIR application from within an AIR application? I have found myself wondering how this would be done exactly, and noticed that <a href="http://blog.everythingflex.com/" target="_blank">Rich Tretola</a> just did a great <a href="http://blog.everythingflex.com/2009/06/08/open-an-air-application-from-a-2nd-air-application/" target="_blank">blog post</a> this morning on two ways to do it, including source code. He presented the solutions at <a href="http://www.360flex.com/" target="_blank">360 | Flex</a> recently and was kind enough to share it on his blog. He shows one solution using an undocumented AIR class called ProductManager, and another of how to load from the Browser API air.swf in the event that you are not sure the other AIR app is installed on the user&#8217;s machine. Check it out if you find yourself in need of this functionality in the future!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/310/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=310&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/06/08/launch-an-air-app-from-within-another-air-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>
	</item>
		<item>
		<title>Tour de LiveCycle!</title>
		<link>http://devgirl.wordpress.com/2009/05/29/tour-de-livecycle/</link>
		<comments>http://devgirl.wordpress.com/2009/05/29/tour-de-livecycle/#comments</comments>
		<pubDate>Fri, 29 May 2009 14:14:30 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[LiveCycle Data Services]]></category>
		<category><![CDATA[Adobe LiveCycle]]></category>
		<category><![CDATA[Adobe LiveCycle ES]]></category>
		<category><![CDATA[LiveCycle ES]]></category>
		<category><![CDATA[Tour de LiveCycle]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=303</guid>
		<description><![CDATA[If you haven&#8217;t heard the news yet, Tour de LiveCycle was released this week! It is based on the same architecture as used in Tour de Flex and is jam-packed with useful information on how to use this very complex but powerful product from Adobe. LiveCycle ES is near and dear to me as I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=303&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you haven&#8217;t heard the news yet, <a href="http://www.adobe.com/devnet/livecycle/tourdelivecycle/" target="_blank">Tour de LiveCycle</a> was released this week! It is based on the same architecture as used in<a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank"> Tour de Flex</a> and is jam-packed with useful information on how to use this very complex but powerful product from Adobe. LiveCycle ES is near and dear to me as I have worked with it and the wonderful people that continue to develop and support it for many years now.  I was fortunate enough to work with the development team that wrote the original workflow engine that was eventually purchased by Adobe back in 2004, and have seen it evolve so much over the years. I have to say I&#8217;m super excited about this application because I feel it was so necessary and will be such a huge help to so many.  I know that many people have no clue what LiveCycle ES is all about, what you would do with it etc, but now is your chance to find out! It is absolutely worth your time to install <a href="http://flash.fincanon.com/archives/163" target="_blank">the AIR app</a> and find out more about it. This app is not only useful for those who are discovering LiveCycle, but will also serve as an awesome reference to those who are using it in their day to day jobs. I highly recommend checking this out, yet another great application from Adobe&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/303/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=303&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/05/29/tour-de-livecycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>
	</item>
		<item>
		<title>LiveCycle Data Services (LCDS) Goodies added to Tour de Flex!</title>
		<link>http://devgirl.wordpress.com/2009/05/29/livecycle-data-services-lcds-goodies-added-to-tour-de-flex/</link>
		<comments>http://devgirl.wordpress.com/2009/05/29/livecycle-data-services-lcds-goodies-added-to-tour-de-flex/#comments</comments>
		<pubDate>Fri, 29 May 2009 13:19:18 +0000</pubDate>
		<dc:creator>devgirl</dc:creator>
				<category><![CDATA[Flex/AIR]]></category>
		<category><![CDATA[LiveCycle Data Services]]></category>
		<category><![CDATA[LCDS]]></category>
		<category><![CDATA[LCDS Samples]]></category>
		<category><![CDATA[LiveCycle Data Services Samples]]></category>
		<category><![CDATA[Tour de Flex]]></category>
		<category><![CDATA[Tour de Flex LCDS]]></category>

		<guid isPermaLink="false">http://devgirl.wordpress.com/?p=283</guid>
		<description><![CDATA[Recently I&#8217;ve been given the opportunity to work on adding LiveCycle Data Services (LCDS) samples to Tour de Flex in an effort to help ‘de-mystify’ it for developers. In my opinion it seems that many find it a bit intimidating, at least anything beyond using HTTPService, WebService or RemoteObject anyway&#8230; I think much of this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=283&subd=devgirl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently I&#8217;ve been given the opportunity to work on adding LiveCycle Data Services (LCDS) samples to <a href="http://www.adobe.com/devnet/flex/tourdeflex/" target="_blank">Tour de Flex</a> in an effort to help ‘de-mystify’ it for developers. In my opinion it seems that many find it a bit intimidating, at least anything beyond using HTTPService, WebService or RemoteObject anyway&#8230; I think much of this is due to the lack of information on how to use it exactly (other than the super helpful <a href="http://coenraets.org" target="_blank">coenraets.org</a>), the confusion about configuration, (since there are so many different XML files involved) and developers not knowing exactly how to set it up with their projects to get started with it quickly and not painfully <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ! I am a great example of this myself because I remember full-well the experience I had when I needed to use it on my first project and know the frustrations that could have been avoided given the right knowledge!</p>
<p>The overall goal of these samples is to help get developers started with showing off the many different features available in a simplified manner, along with explanatory text, source code (including server side), XML configuration file entries etc. I was involved in numerous discussions regarding these samples and how to best present them with Adobe Evangelists <a href="http://gregsramblings.com/" target="_blank">Greg Wilson</a>, <a href="http://coenraets.org" target="_blank">Christophe Coenraets</a> and <a href="http://www.jamesward.com/blog/" target="_blank">James Ward</a>, and they had some really great ideas that I believe will be a huge benefit to the community of developers of all types. Some samples have already been added thus far (under top-level category <em>Flex Data Access</em>), and notes about them are listed in the <a href="http://www.adobe.com/devnet/flex/tourdeflex/web/" target="_blank">QuickStart page</a> that’s shown when you open Tour de Flex initially (on both the AIR and web versions). However, there are more to come, as well as some samples that highlight using Flex and LiveCycle Data Services with a back-end other than Java (PHP, ColdFusion, .NET, Ruby etc). As part of this goal, we’re hoping to solicit samples from other server side software companies showing how to use their APIs, so look for those in the near future. I&#8217;m also about to release a sample that shows how to work with Hibernate on the back-end with your Flex client using data services.</p>
<p>In addition to the samples, I’ve also started writing up some summary notes to supplement them and explain some things about LCDS overall. I’m hoping these notes will help people get started quickly since they are coming from a fellow developer’s point of view who’s sorta been there, done that and will hopefully simplify things for people beyond trying to gather it from reading the very large LCDS developer’s guide <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ! That post will be coming in the next week as well so please check back again soon!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgirl.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgirl.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgirl.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgirl.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgirl.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgirl.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgirl.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgirl.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgirl.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgirl.wordpress.com/283/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgirl.wordpress.com&blog=3192647&post=283&subd=devgirl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devgirl.wordpress.com/2009/05/29/livecycle-data-services-lcds-goodies-added-to-tour-de-flex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc26af87fb5df0e60ec113db1d4670a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">devgirl</media:title>
		</media:content>
	</item>
	</channel>
</rss>