<br />
<b>Warning</b>:  include() [<a href='function.include'>function.include</a>]: Unable to access /var/www/html/rogue-development/blog2/wp-content/advanced-cache.php in <b>/var/www/html/rogue-development/blog2/wp-settings.php</b> on line <b>62</b><br />
<br />
<b>Warning</b>:  include(/var/www/html/rogue-development/blog2/wp-content/advanced-cache.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in <b>/var/www/html/rogue-development/blog2/wp-settings.php</b> on line <b>62</b><br />
<br />
<b>Warning</b>:  include() [<a href='function.include'>function.include</a>]: Failed opening '/var/www/html/rogue-development/blog2/wp-content/advanced-cache.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in <b>/var/www/html/rogue-development/blog2/wp-settings.php</b> on line <b>62</b><br />
<br />
<b>Notice</b>:  add_option was called with an argument that is <strong>deprecated</strong> since version 2.3 with no alternative available. in <b>/var/www/html/rogue-development/blog2/wp-includes/functions.php</b> on line <b>3468</b><br />
<br />
<b>Notice</b>:  register_sidebar_widget is <strong>deprecated</strong> since version 2.8! Use wp_register_sidebar_widget() instead. in <b>/var/www/html/rogue-development/blog2/wp-includes/functions.php</b> on line <b>3382</b><br />
<br />
<b>Notice</b>:  register_widget_control is <strong>deprecated</strong> since version 2.8! Use wp_register_widget_control() instead. in <b>/var/www/html/rogue-development/blog2/wp-includes/functions.php</b> on line <b>3382</b><br />
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marc's Musings &#187; AgileAgenda</title>
	<atom:link href="http://www.rogue-development.com/blog2/category/agileagenda/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rogue-development.com/blog2</link>
	<description>Comments and thoughts on technology from Marc Hughes</description>
	<lastBuildDate>Tue, 29 Mar 2011 00:04:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>A Flash Catalyst / Builder workflow method</title>
		<link>http://www.rogue-development.com/blog2/2009/06/a-flash-catalyst-builder-workflow-method/</link>
		<comments>http://www.rogue-development.com/blog2/2009/06/a-flash-catalyst-builder-workflow-method/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 09:25:22 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.rogue-development.com/blog2/?p=430</guid>
		<description><![CDATA[Update: Check out the new post where I describe how to compile to a swc. I&#8217;ve been playing around with the Flash Catalyst and Builder betas today and one thing that scares me a little is the built-in designer/developer workflow that&#8217;s implied.  From what I can gather, a designer uses a design tool, imports that [...]]]></description>
			<content:encoded><![CDATA[<p>Update: <a href="http://www.rogue-development.com/blog2/2009/06/compiling-fxp-swc-a-catalyst-workflow/">Check out the new post where I describe how to compile to a swc.</a></p>
<p>I&#8217;ve been playing around with the Flash Catalyst and Builder betas today and one thing that scares me a little is the built-in designer/developer workflow that&#8217;s implied.  From what I can gather, a designer uses a design tool, imports that into Catalyst, and then hands of a .FXP file that a developer then imports into Builder to work on.  Then the developer jumps into the files generated by Catalyst, and modifies them.</p>
<p>For smallish projects, that&#8217;s a slam-dunk.  If you don&#8217;t work on large projects, stop reading here and just stick with that.</p>
<p>But there&#8217;s a number of reasons I really don&#8217;t like this intended workflow for larger projects.</p>
<p>First, it&#8217;s not scaleable.  One catalyst file -&gt; one Flash Builder project.  It&#8217;s awefully hard for a team of 5 designers to work on a single catalyst file.</p>
<p>It implies some exclusivity.  If the designer hands off the .FXP file, they really shouldn&#8217;t continue working on it because the developer will start modifying it.  It&#8217;s kind of like having a Word document that you pass back and forth between the designer and the developer.  If they both want to work on it at the same exact time, you&#8217;ll get race conditions.</p>
<p>Second, I don&#8217;t trust anybody to get a perfect Generated Code &lt;-&gt; User Edited Code tool to work perfectly all the time.  If Catalyst generates some code, I edit that, and then we bring it back into Catalyst, I just know that will break at some point.  (Sorry Adobe guys, I know you&#8217;ll do a rocking job with it, and I know it will almost always work, but it&#8217;s just too hard a problem)</p>
<p>So here&#8217;s a solution I&#8217;ve been playing with:</p>
<p><strong>Step 1: Create your design comp</strong></p>
<p>Here&#8217;s a Photoshop file I created with a pretty simple login form.  Make sure to name your layers so they&#8217;re easy to find later.<strong></strong></p>
<p><strong></strong></p>
<p><img class="aligncenter" title="Design Comp" src="http://www.rogue-development.com/uploads/pics//Photoshop-20090601-202712.png" alt="" width="662" height="473" /></p>
<p><strong></strong></p>
<p><strong>Step 2: Import it into Flash Catalyst just like you&#8217;re supposed to.  Edit it to your heart&#8217;s content.</strong></p>
<p>There&#8217;s a bunch of tutorials out there (<a href="http://gotoandlearn.com/">great one from Lee Brimlow here</a>) that show how to actually use Catalyst.  But one difference from all those tutorials.  We won&#8217;t be using the Main root level item.  So don&#8217;t go crazy adding states to your base stage.  But DO go crazy creating sub-components and adding states and behaviors to those.</p>
<p>Here&#8217;s a screenshot of my Catalyst project.  This is showing off a LoginForm component that I created.  Notice it has a few states with transitions set up between those states.</p>
<p><img class="aligncenter" title="In Flash Catalyst" src="http://www.rogue-development.com/uploads/pics//Flash_Catalyst-20090601-203203.png" alt="" width="649" height="479" /></p>
<p><strong></strong></p>
<p><strong>Step 3: Save it as a .FXP</strong></p>
<p>File-&gt;Save from Flash Catalyst.</p>
<p>For my example, I used FCTest.fxp as the name.</p>
<p><strong> Step 4: Create an empty Flash Builder project (not importing anything here)</strong></p>
<p><strong></strong></p>
<p>Just create a plain old Flash Builder project with a Flex based application in it.  (Make sure you&#8217;re using a Flex 4 SDK!)</p>
<p><strong>Step 5: Take your .FXP from above, and unzip it somewhere</strong></p>
<p>Here&#8217;s the sneaky part.  That .fxp file is really just a zip file that contains a Flash Builder project.  You can unzip it with any standard zip tool.  In OSX I just open a terminal and did a:</p>
<p>unzip FCTest.fxp</p>
<p>It creates a directory structure that looks something like this:</p>
<p><img class="aligncenter" title="Exploded .fxp file" src="http://www.rogue-development.com/uploads/pics//fxpdir-20090601-203746.png" alt="" width="664" height="483" /></p>
<p>Notice the two folders with arrows pointing to them, they&#8217;re important in the next step.</p>
<p><strong> Step 6: Take the components and assets folders from that unzipping and put them in a brand new folder.</strong></p>
<p>We can take those two folders and use them in our Flash Builder project to get access to all of our custom components that we made in Flash Catalyst.  I&#8217;m planning ahead a little bit so I created a &#8220;CatalystAssets&#8221; folder, and a &#8220;FCTest.fxp&#8221; folder inside that, and placed them there.  This will allow me to have assets from many different catalyst files in the future someday.</p>
<p><img class="aligncenter" title="Project Dirs" src="http://www.rogue-development.com/uploads/pics//FCTest-20090601-204408.png" alt="" width="722" height="450" /></p>
<p><strong> Step 7: Link to that folder from your Flash Builder project</strong></p>
<p>Flash Builder can link to source directories outside of the project.  To do that go to Project-&gt;Properties-&gt;Flex Build Path.  Click the &#8220;Add Folder&#8230;&#8221; button and add the FCTest.fxp folder (the folder we created, not the file Catalyst made).</p>
<p><a href="http://www.rogue-development.com/uploads/pics//FCTestbuildPath-20090601-204636.png"><img class="aligncenter" title="Build Properties" src="http://www.rogue-development.com/uploads/pics//FCTestbuildPath-20090601-204636.png" alt="" width="596" height="530" /></a></p>
<p>In Flash Builder&#8217;s Package Explorer you&#8217;ll see something like this after you do that:</p>
<p><img class="aligncenter" title="Package Explorer FC" src="http://www.rogue-development.com/uploads/pics//Flash_-_FCTest_src_com_roguedevelopment_fctest_CompositionExample.as_-_Flash_Builder_-__Users_mhughes_Documents_Adobe_Flash_Builder_Beta-20090601-210429.png" alt="" width="259" height="398" /></p>
<p>The developer should NEVER EDIT anything in the FCTest folder.  Consider that all auto-generated stuff that will wipe out anything you do in there.</p>
<p>The developer can and should work in the normal Flash Builder src folder, likely importing classes and assets from the FCTest folder and using them.</p>
<p><strong> Step 8: Use the Flash Catalyst based assets!</strong><br />
<a name="useAssets" ></a><br />
<strong></strong></p>
<p>For simple components that you don&#8217;t need to add any functionality to, you can just use them in your MXML.  For example, I created a component called Background in my Catalyst file.  To use it in the Flex application you just do something like this:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;utf-8&quot;</span><span class="re2">?&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;s:Application</span> <span class="re0">xmlns:fx</span>=<span class="st0">&quot;http://ns.adobe.com/mxml/2009&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">xmlns:s</span>=<span class="st0">&quot;library://ns.adobe.com/flex/spark&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">xmlns:mx</span>=<span class="st0">&quot;library://ns.adobe.com/flex/halo&quot;</span> <span class="re0">minWidth</span>=<span class="st0">&quot;1024&quot;</span> <span class="re0">minHeight</span>=<span class="st0">&quot;768&quot;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;<span class="re0">xmlns:components</span>=<span class="st0">&quot;components.*&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;components:Background</span> <span class="re0">verticalCenter</span>=<span class="st0">&quot;0&quot;</span> <span class="re0">horizontalCenter</span>=<span class="st0">&quot;0&quot;</span> <span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/s:Application<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
<p>Notice the components namespace with the Background component name.</p>
<p>Adding non-interactive components isn&#8217;t all that interesting.  So what happens if you want to add functionality to components created in catalyst?  There&#8217;s two options here, either use the assets from the .FXP through composition or inheritance.  Here are two examples that show how to do them both:</p>
<p>Extending a Catalyst component through inheritance:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">package com.<span class="me1">roguedevelopment</span>.<span class="me1">fctest</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> components.<span class="me1">LoginForm</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">MouseEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> flash.<span class="me1">utils</span>.<span class="me1">setTimeout</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> mx.<span class="me1">controls</span>.<span class="me1">Alert</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> mx.<span class="me1">events</span>.<span class="me1">FlexEvent</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw3">public</span> <span class="kw2">class</span> InheritenceExample <span class="kw3">extends</span> LoginForm</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> InheritenceExample<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">super</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; addEventListener<span class="br0">&#40;</span>FlexEvent.<span class="me1">CREATION_COMPLETE</span>, creationComplete <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; protected <span class="kw2">function</span> creationComplete<span class="br0">&#40;</span>event:FlexEvent<span class="br0">&#41;</span>:<span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; setTimeout<span class="br0">&#40;</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span> currentState = <span class="st0">&quot;Normal&quot;</span>; <span class="br0">&#125;</span>, <span class="nu0">300</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; textinput2.<span class="me1">displayAsPassword</span> = <span class="kw2">true</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; button1.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, onLoginButtonClick <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; textinput1.<span class="kw3">setFocus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; protected <span class="kw2">function</span> onLoginButtonClick<span class="br0">&#40;</span>event:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> correct:<span class="kw3">Boolean</span> = <span class="br0">&#40;</span> textinput1.<span class="kw3">text</span> == <span class="st0">&quot;marc&quot;</span> <span class="br0">&#41;</span> &amp;amp;&amp;amp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#40;</span> textinput2.<span class="kw3">text</span> = <span class="st0">&quot;1234&quot;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> correct <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; currentState = <span class="st0">&quot;Working&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; setTimeout<span class="br0">&#40;</span> success , <span class="nu0">1500</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; currentState = <span class="st0">&quot;Error&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; setTimeout<span class="br0">&#40;</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span> currentState = <span class="st0">&quot;Normal&quot;</span>; <span class="br0">&#125;</span>, <span class="nu0">1500</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; protected <span class="kw2">function</span> success<span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; Alert.<span class="kw3">show</span><span class="br0">&#40;</span><span class="st0">&quot;Correct log in!&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; currentState = <span class="st0">&quot;Normal&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Or, if you want to use composition instead of inheritance you could do something like this:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">package com.<span class="me1">roguedevelopment</span>.<span class="me1">fctest</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> components.<span class="me1">LoginForm</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">MouseEvent</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw3">import</span> flash.<span class="me1">utils</span>.<span class="me1">setTimeout</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> mx.<span class="me1">controls</span>.<span class="me1">Alert</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">import</span> spark.<span class="me1">components</span>.<span class="me1">Group</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">public</span> <span class="kw2">class</span> CompositionExample <span class="kw3">extends</span> Group</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; protected <span class="kw2">var</span> loginForm:LoginForm;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> CompositionExample<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw3">super</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; override protected <span class="kw2">function</span> createChildren<span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; loginForm = <span class="kw2">new</span> LoginForm<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; addElement<span class="br0">&#40;</span>loginForm<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">width</span> = <span class="nu0">527</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">height</span> = <span class="nu0">325</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; setTimeout<span class="br0">&#40;</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span> loginForm.<span class="me1">currentState</span> = <span class="st0">&quot;Normal&quot;</span>; <span class="br0">&#125;</span>, <span class="nu0">300</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; loginForm.<span class="me1">textinput2</span>.<span class="me1">displayAsPassword</span> = <span class="kw2">true</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; loginForm.<span class="me1">button1</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, onLoginButtonClick <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; loginForm.<span class="me1">textinput1</span>.<span class="kw3">setFocus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; protected <span class="kw2">function</span> onLoginButtonClick<span class="br0">&#40;</span>event:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> correct:<span class="kw3">Boolean</span> = <span class="br0">&#40;</span> loginForm.<span class="me1">textinput1</span>.<span class="kw3">text</span> == <span class="st0">&quot;marc&quot;</span> <span class="br0">&#41;</span> &amp;amp;&amp;amp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span> loginForm.<span class="me1">textinput2</span>.<span class="kw3">text</span> = <span class="st0">&quot;1234&quot;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> correct <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; loginForm.<span class="me1">currentState</span> = <span class="st0">&quot;Working&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; setTimeout<span class="br0">&#40;</span> success , <span class="nu0">1500</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; loginForm.<span class="me1">currentState</span> = <span class="st0">&quot;Error&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; setTimeout<span class="br0">&#40;</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span> loginForm.<span class="me1">currentState</span> = <span class="st0">&quot;Normal&quot;</span>; <span class="br0">&#125;</span>, <span class="nu0">1500</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; protected <span class="kw2">function</span> success<span class="br0">&#40;</span><span class="br0">&#41;</span> : <span class="kw3">void</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; Alert.<span class="kw3">show</span><span class="br0">&#40;</span><span class="st0">&quot;Correct log in!&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; loginForm.<span class="me1">currentState</span> = <span class="st0">&quot;Normal&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Now that you have your components with some added functionality, you can use them in your main application like you would any other Flex based component.  You can see a working demo, with view-source enabled here:</p>
<p>http://rogue-development.com/uploads/catalystWorkflow/FCTest.html</p>
<p>As you can tell, that seems like a LOT of extra work.  But here&#8217;s the payoff:</p>
<ol>
<li>The designer is free to continue working in Flash Catalyst while the developer works in Flash builder.  Whenever he has changes, he just hands off a brand new .FXP, and the developer repeats steps 5 and 6 to replace some files and then refreshes the Flash Builder workspace.</li>
<li>You can create multiple folders inside that &#8220;CatalystAssets&#8221; folder, and then use assets from multiple FlashCatalyst projects in a single Flash Builder project.</li>
<li>You can add those Flash Catalyst assets to version control and easily distribute them to multiple developers. (Not to mention track changes!)</li>
</ol>
<p>I did up a quick shell-script to unzip the .fxp file, make some directories, and copy the files to the appropriate place.  I can run this whenever the designer gives me a new .fxp.   I think with a little work we could create a Eclipse &#8220;Builder&#8221; (that&#8217;s unrelated to the product name &#8220;Flash Builder&#8221;) that would completely automate this entire process.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> -rf .tmp</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> .tmp</div>
</li>
<li class="li2">
<div class="de2"><span class="kw3">cd</span> .tmp</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">unzip</span> -o ../FCTest.fxp</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> ..</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> -rf CatalystAssets/FCTest.fxp/com/roguedevelopment/fctest </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> CatalystAssets/FCTest.fxp</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mkdir</span> CatalystAssets/FCTest.fxp/assets </div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mv</span> .tmp/src/components CatalystAssets/FCTest.fxp</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mv</span> .tmp/src/assets/FCTest CatalystAssets/FCTest.fxp/assets</div>
</li>
</ol>
</div>
<p>Some things I wish Flash Catalyst did:</p>
<ol>
<li>Let me select a package that components get created in. (maybe there&#8217;s a way to do that?)</li>
<li>Make it easier to intelligently name the classes and property names that get generated</li>
<li>Export a swc with everything in it so we don&#8217;t have to go through most of this.</li>
</ol>
<p>Well anyways, I give Catalyst 2 thumbs up and even if we have to go through this process for a sane workflow it will save huge amounts of time in our shop.</p>
<p>P.S. I&#8217;m no Catalyst expert so maybe there IS a better workflow that I just haven&#8217;t seen yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2009/06/a-flash-catalyst-builder-workflow-method/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>AgileAgenda, Basecamp, and third party API&#8217;s</title>
		<link>http://www.rogue-development.com/blog2/2008/06/agileagenda-basecamp-and-third-party-apis/</link>
		<comments>http://www.rogue-development.com/blog2/2008/06/agileagenda-basecamp-and-third-party-apis/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 16:37:23 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>

		<guid isPermaLink="false">http://www.rogue-development.com/blog2/2008/06/agileagenda-basecamp-and-third-party-apis/</guid>
		<description><![CDATA[I haven&#8217;t blogged about AgileAgenda in a while on purpose since it seemed I was doing it far too often and was turning this blog into a big Ad instead of the resource for developers that I had meant it to be.&#160; But I&#8217;ve done good with only a single post in the past five [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://agileagenda.com/images/site_name_white.png" width="269" height="84" /></p>
<p>I haven&#8217;t blogged about <a href="http://www.agileagenda.com/">AgileAgenda</a> in a while  on purpose since it seemed I was doing it far too often and was turning this blog into a big Ad instead of the resource for developers that I had meant it to be.&#160; But I&#8217;ve done good with only a <a href="http://www.rogue-development.com/blog2/2008/05/agileagenda-on-linux/">single post</a> in the past five months, and I hope you&#8217;ll indulge me for a moment with this one. </p>
<p>We just released a new version, and it has a feature that a lot of customers have been asking for.&#160; <strong>Far improved <a href="http://basecamphq.com/">Basecamp</a> integration!</strong> You can now connect to an SSL powered Basecamp install, and you can also now associate AgileAgenda resources with Basecamp contacts to automatically assign the Todo items.  This is a huge jump in the integration between these two products and I&#8217;m really excited about it.&#160; We also streamlined some of the synchronization so it all happens a bit faster.&#160; You can <a href="http://www.agileagenda.com/help/setupbasecamp.html">read all about it here.</a> </p>
<p> <a href="http://www.agileagenda.com/help/setupbasecamp.html"><img src="http://www.agileagenda.com/images/basecamp1.png" width="500" height="329" border="0" /></a></p>
<p>In the future, I&#8217;ll be exploring other services to integrate with.&#160; At my day-job we&#8217;re beginning a <a href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;cp=1-11-127-24_4000_100__">QualityCenter</a> rollout, so that may be on the list.&#160; Along with that, I&#8217;ve always had plans to be able to export to <a href="http://www.google.com/calendar/render">Google Calendar</a>.&#160; Working with third party API&#8217;s really excites me since it&#8217;s a way to add a huge chunk of functionality (and customer value) very easily.&#160; Any other ideas? </p>
<p>That really gets me thinking about interchangeable data on the web and how good it is for end users. With that in mind, I hope to be able to release the AgileAgenda integration API sometime this summer that would allow other applications to integrate with AgileAgenda.&#160; That&#8217;s going to take some serverside rework, but that&#8217;ll need to happen eventually for other reasons.  Before that, we&#8217;ll start publishing RSS feeds of schedules so external programs can at least start consuming data from AgileAgenda. <br/>
		                  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2008/06/agileagenda-basecamp-and-third-party-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AgileAgenda on Linux</title>
		<link>http://www.rogue-development.com/blog2/2008/05/agileagenda-on-linux/</link>
		<comments>http://www.rogue-development.com/blog2/2008/05/agileagenda-on-linux/#comments</comments>
		<pubDate>Sat, 10 May 2008 00:54:32 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.rogue-development.com/blog2/2008/05/agileagenda-on-linux/</guid>
		<description><![CDATA[This was kind of neat.  I grabbed an Ubuntu VMWare image, installed the AIR Alpha, and then installed AgileAgenda on it.  It mostly worked, except for one crippling problem.  For some reason the hotkey for &#8220;Save&#8221; was set to &#8220;S&#8221; instead of &#8220;Ctrl-S&#8221;&#8230; so you couldn&#8217;t type any task name with an &#8220;S&#8221; in it.  [...]]]></description>
			<content:encoded><![CDATA[<p>This was kind of neat.  I grabbed an Ubuntu VMWare image, installed the AIR Alpha, and then installed AgileAgenda on it.  It mostly worked, except for one crippling problem.  For some reason the hotkey for &#8220;Save&#8221; was set to &#8220;S&#8221; instead of &#8220;Ctrl-S&#8221;&#8230; so you couldn&#8217;t type any task name with an &#8220;S&#8221; in it.  I&#8217;ll have to look into that to see if it&#8217;s just an AIR Alpha bug, or if it&#8217;s a problem I need to fix with something I&#8217;m doing.  I can&#8217;t wait for the full Linux AIR to come out, it&#8217;ll be a great way for Linux users to get applications.</p>
<p>One of the best things about AIR is it&#8217;s application distribution model.  It&#8217;s just so darned easy for people to install apps.  One of the worst things about Linux is application distribution.  There&#8217;s just too many package formats and different ways to install.  I really hope AIR can bring a single, simple, installation method for AIR apps to all of the popular distributions.  Something that my wife could sit down at a Linux computer and do.</p>
<p><span style="text-decoration: underline;"><a href="http://www.rogue-development.com/blog2/wp-content/uploads/2008/05/agileagendalinux.png"></a><a href="http://www.rogue-development.com/blog2/wp-content/uploads/2008/05/agileagendalinux1.png"><img class="alignnone size-thumbnail wp-image-202" title="agileagendalinux.png" src="http://www.rogue-development.com/blog2/wp-content/uploads/2008/05/agileagendalinux1.png" alt="" width="600" /></a></span></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2008/05/agileagenda-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AgileAgenda &#8211; New Version</title>
		<link>http://www.rogue-development.com/blog2/2008/01/agileagenda-new-version-3/</link>
		<comments>http://www.rogue-development.com/blog2/2008/01/agileagenda-new-version-3/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 12:08:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Schedule]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=113</guid>
		<description><![CDATA[Posted a new version of AgileAgenda over the weekend.  Fixed a few minor bugs, redesigned the opening screens, and put in our new logo.  The entire initial user experience should be better now.   Here&#8217;s a quick glimpse of what it looks like now:]]></description>
			<content:encoded><![CDATA[<p>Posted a new version of <a href="http://www.agileagenda.com/download/">AgileAgenda</a> over the weekend.  Fixed a few minor bugs, redesigned the opening screens, and put in our new logo.  The entire initial user experience should be better now.   Here&#8217;s a quick glimpse of what it looks like now:
<div> </div>
<div>
<div></div>
<p><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.agileagenda.com/screenshots/screenshot1.png" border="0" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2008/01/agileagenda-new-version-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR Badge installer + swfobject + ExpressInstall</title>
		<link>http://www.rogue-development.com/blog2/2007/12/air-badge-installer-swfobject-expressinstall/</link>
		<comments>http://www.rogue-development.com/blog2/2007/12/air-badge-installer-swfobject-expressinstall/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 16:05:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[badge]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=103</guid>
		<description><![CDATA[I&#8217;ve put together a page to install AgileAgenda using SWFObject with the ExpressInstall feature and the AIR Installation Badge. This means people with a Flash Player less than 9.0.115 should be able to first upgrade their flash player, and then use the easy badge installation method for AIR + the application. I gave it a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve put together a page to install <a href="http://www.agileagenda.com/download/">AgileAgenda</a> using <a href="http://www.swffix.org/">SWFObject</a> with the ExpressInstall feature and the AIR Installation Badge.</p>
<p>This means people with a Flash Player less than 9.0.115 should be able to first upgrade their flash player, and then use the easy badge installation method for AIR + the application.  I gave it a try on Firefox + Safari on OSX and IE + Firefox on WinXP, all of them with a 9.0.47 flash player and it all seemed to work well.  The code also displays a message suggesting people install Flash player or install the AIR application manually if they don&#8217;t have any version of Flash.</p>
<p>I&#8217;ve put together a <a href="http://rogue-development.com/AgileBadgeInstaller.zip">small archive</a> of the necessary files to make this work.  It contains files from the <a href="http://code.google.com/p/swfobject/">swfobject</a> guys released under the MIT license, and you can consider anything I wrote to make this work also under that license (which allows you to pretty much use it any way you like).</p>
<div>Thanks go to the swfobject guys, they really made this a no-brainer on how to implement!</div>
<div>Hope this helps some people.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/12/air-badge-installer-swfobject-expressinstall/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>AgileAgenda &#8211; New Version</title>
		<link>http://www.rogue-development.com/blog2/2007/12/agileagenda-new-version-2/</link>
		<comments>http://www.rogue-development.com/blog2/2007/12/agileagenda-new-version-2/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 20:05:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Schedule]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=101</guid>
		<description><![CDATA[For those of you new here, AgileAgenda is a project scheduling application built on Adobe AIR. There&#8217;s a new version of AgileAgenda now available on the website. It&#8217;s been updated for AIR Beta 3, and includes a lot of bug fixes and minor enhancements, with a couple large feature improvements thrown in for good measure. [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-style: italic;">For those of you new here, AgileAgenda is a project scheduling application built on Adobe AIR.  </span></p>
<p>There&#8217;s a new version of AgileAgenda now available on <a href="http://www.agileagenda.com/">the website.</a></p>
<p>It&#8217;s been updated for AIR Beta 3, and includes a lot of bug fixes and minor enhancements, with a couple large feature improvements thrown in for good measure.  You can read the list on the <a href="http://www.agileagenda.com/blog/">project blog</a>.</p>
<p>The biggest change for me is file open/save dialogs work on OSX Leopard!  Yay.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/12/agileagenda-new-version-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AgileAgenda &#8211; new version</title>
		<link>http://www.rogue-development.com/blog2/2007/10/agileagenda-new-version/</link>
		<comments>http://www.rogue-development.com/blog2/2007/10/agileagenda-new-version/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 11:06:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=78</guid>
		<description><![CDATA[There&#8217;s a new version of AgileAgenda available over at http://www.agileagenda.com/download/index.html. For those of you who are visiting the blog for the first time, it&#8217;s a project planning and scheduling package written in AIR. I&#8217;m starting to get close to a 1.0 release as I&#8217;m down to a single feature I want to get in there, [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a new version of AgileAgenda available over at <a href="http://www.agileagenda.com/download/index.html">http://www.agileagenda.com/download/index.html</a>.  For those of you who are visiting the blog for the first time, it&#8217;s a project planning and scheduling package written in AIR.  I&#8217;m starting to get close to a 1.0 release as I&#8217;m down to a single feature I want to get in there, and only a handful of known bugs.</p>
<p>I&#8217;ve spent a bunch of time working on the PDF export and have really been pushing <a href="http://alivepdf.org/">alivePDF</a> to it&#8217;s limits.  Last week I sent a bunch of changes having to do with page size and a couple bug fixes to <a href="http://bytearray.org/">Thibault</a>, everyone should check his project out, it rocks.<br /><a href="http://www.agileagenda.com/blog/ExamplePrintout.pdf"><br />Here&#8217;s a quick example</a> of the type of stuff you can do with AlivePDF.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/10/agileagenda-new-version/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developer interface to schedules</title>
		<link>http://www.rogue-development.com/blog2/2007/09/developer-interface-to-schedules/</link>
		<comments>http://www.rogue-development.com/blog2/2007/09/developer-interface-to-schedules/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 02:29:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=61</guid>
		<description><![CDATA[I&#8217;ve been working on a project scheduling application, and have a sneak peek at a new feature. Wouldn&#8217;t it be great if every developer on your team could go in to the schedule and update the tasks they&#8217;re responsible for? They could mark them complete when they finish them, suggest new estimates, or make comments. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a <a href="http://www.agileagenda.com/">project scheduling application</a>, and have a sneak peek at a new feature.</p>
<p>Wouldn&#8217;t it be great if every developer on your team could go in to the schedule and update the tasks they&#8217;re responsible for?  They could mark them complete when they finish them, suggest new estimates, or make comments.  Or even just to look at the latest set of tasks they have.</p>
<p>But doesn&#8217;t it suck to have to worry about developers mucking around in your precisely laid out schedule?</p>
<p>Now, there&#8217;s a developer interface that lets them subscribe to your schedule, and then update and comment on tasks with a simplified user interface.  </p>
<p>Using the interface, they can subscribe to multiple schedules using a special key you can generate from the AgileAgenda main interface.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.rogue-development.com/blog/uploaded_images/DevInterface-731993.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.rogue-development.com/blog/uploaded_images/DevInterface-731991.png" border="0" alt="" /></a></p>
<p>Then they can synchronize their view with the network version and take a local copy with them.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.rogue-development.com/blog/uploaded_images/DevInterface3-764600.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.rogue-development.com/blog/uploaded_images/DevInterface3-764595.png" border="0" alt="" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.rogue-development.com/blog/uploaded_images/DevInterface2-752338.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.rogue-development.com/blog/uploaded_images/DevInterface2-752333.png" border="0" alt="" /></a></p>
<p>Right now, it&#8217;s read-only, but I&#8217;ll be adding all that 2-way stuff soon.  And don&#8217;t worry, any changes made through the dev interface will have to be approved by the project manager in the main AgileAgenda interface.</p>
<p>I&#8217;ll have to slap on a slick interface at some point as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/09/developer-interface-to-schedules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New tutorials</title>
		<link>http://www.rogue-development.com/blog2/2007/09/new-tutorials/</link>
		<comments>http://www.rogue-development.com/blog2/2007/09/new-tutorials/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 02:29:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=58</guid>
		<description><![CDATA[There&#8217;s a new AgileAgenda tutorial showing off the basic functionality of the software. See it at this url: http://www.agileagenda.com/help/createproject.html You can view the previous tutorial on the light table at: http://www.agileagenda.com/help/lighttable.html]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a new AgileAgenda tutorial showing off the basic functionality of the software.  See it at this url:</p>
<p><a href="http://www.agileagenda.com/help/createproject.html">http://www.agileagenda.com/help/createproject.html</a></p>
<p>You can view the previous tutorial on the light table at:</p>
<p><a href="http://www.agileagenda.com/help/lighttable.html">http://www.agileagenda.com/help/lighttable.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/09/new-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AgileAgenda Light Table</title>
		<link>http://www.rogue-development.com/blog2/2007/09/agileagenda-light-table/</link>
		<comments>http://www.rogue-development.com/blog2/2007/09/agileagenda-light-table/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 03:37:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=56</guid>
		<description><![CDATA[The latest feature to AgileAgenda is the &#8220;Light Table&#8221;, where you can drag your tasks around to modify their priority, who they&#8217;re assigned to, and the estimated duration. I think this feature has the possibility to be a huge help to some people. Take a look at a short video showing it.]]></description>
			<content:encoded><![CDATA[<p>The latest feature to AgileAgenda is the &#8220;Light Table&#8221;, where you can drag your tasks around to modify their priority, who they&#8217;re assigned to, and the estimated duration.  I think this feature has the possibility to be a huge help to some people.</p>
<p>Take a look at a short <a href="http://www.agileagenda.com/help/lighttable.html">video showing</a> it.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agileagenda.com/tour/screenshot12.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.agileagenda.com/tour/screenshot12.JPG" border="0" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/09/agileagenda-light-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AirDerbyEntries++</title>
		<link>http://www.rogue-development.com/blog2/2007/09/airderbyentries/</link>
		<comments>http://www.rogue-development.com/blog2/2007/09/airderbyentries/#comments</comments>
		<pubDate>Wed, 05 Sep 2007 18:48:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=54</guid>
		<description><![CDATA[Last night I submitted agile agenda for the AIR derby. I wasn&#8217;t going to originally since I didn&#8217;t think I had a chance in hell, but then I got thinking. Even making some kind of entry-list might generate some good publicity. With beta starting within the next week or two, I could use a little [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I submitted  <a href="http://www.agileagenda.com/">agile agenda</a> for the AIR derby.  I wasn&#8217;t going to originally since I didn&#8217;t think I had a chance in hell, but then I got thinking.  Even making some kind of entry-list might generate some good publicity.  With beta starting within the next week or two, I could use a little press.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/09/airderbyentries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AgileAgenda progress</title>
		<link>http://www.rogue-development.com/blog2/2007/08/agileagenda-progress/</link>
		<comments>http://www.rogue-development.com/blog2/2007/08/agileagenda-progress/#comments</comments>
		<pubDate>Sat, 25 Aug 2007 13:40:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=49</guid>
		<description><![CDATA[With the release of AlivePDF, I&#8217;ve started on the printed reports of the project, arguably one of the most important features of software like this. Here is a sample report for the first few hours of working on this stuff. I&#8217;m quite pleased with how easily and quickly it was to develop that. It needs [...]]]></description>
			<content:encoded><![CDATA[<p>With the release of <a href="http://www.alivepdf.org/">AlivePDF</a>, I&#8217;ve started on the printed reports of the project, arguably one of the most important features of software like this.  Here is a <a href="http://www.agileagenda.com/sample.pdf">sample report</a> for the first few hours of working on this stuff.  I&#8217;m quite pleased with how easily and quickly it was to develop that.  It needs a lot of work visually, but I think it&#8217;s actually a useful report.  When printing these out you can choose which sections of the report will go in.  Eventually I want to get the outline/bookmark PDF features working to make it easy to jump around in the document.  I still have to tackle printing out the gantt style chart, but that&#8217;s for another day.  (Note on sample&#8230; that project is an amazingly simple project not really needing software like this.  I&#8217;ve also been using this software for a project I&#8217;ve been working on at my &#8220;real job&#8221; and that is actually useful)</p>
<p>I&#8217;ve also been working with a young designer from France on some of the visual aspects of the software.  He&#8217;s been making icons for a while now and agreed to let me use some of them in my project.  On top of that he did a mockup on a screen that took my thoughts on design to a completely new direction.  He&#8217;s working on a project of his own as well, I&#8217;ll make sure to post about it when it&#8217;s ready.  Here&#8217;s an example of what the software might look like come release time:</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.rogue-development.com/blog/uploaded_images/mockup-770602.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.rogue-development.com/blog/uploaded_images/mockup-770596.png" alt="" border="0" /></a></p>
<p>Even that look still has a couple rounds of revisions left, but it&#8217;s getting closer.</p>
<p>We&#8217;re still accepting <a href="http://www.agileagenda.com/betaSignup.html">beta applications</a> for anyone interested in trying this stuff out in the first round of beta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/08/agileagenda-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSX Flex app is slow&#8230;</title>
		<link>http://www.rogue-development.com/blog2/2007/07/osx-flex-app-is-slow/</link>
		<comments>http://www.rogue-development.com/blog2/2007/07/osx-flex-app-is-slow/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 18:05:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Schedule]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=38</guid>
		<description><![CDATA[So I tried my scheduling software on my mac today. It took about 18 seconds to calculate my schedule on my duo-core 2ghz MacBook Pro. My home WinXP 2.1ghz DuoCore2 based machine takes 2 seconds. A 9x improvement. But the shocker&#8230; my work WinXP laptop with a 1.7ghz Pentium M, a MUCH slower machine, takes [...]]]></description>
			<content:encoded><![CDATA[<p>So I tried my scheduling software on my mac today.  It took about 18 seconds to calculate my schedule on my duo-core 2ghz MacBook Pro.</p>
<p>My home WinXP 2.1ghz DuoCore2 based machine takes 2 seconds.  A 9x improvement.</p>
<p>But the shocker&#8230; my work WinXP laptop with a 1.7ghz Pentium M, a MUCH slower machine, takes about 4 seconds.</p>
<p>Why is the Mac so much slower on compute intensive actionscript?</p>
<p>I&#8217;ve heard of it being slower on graphical animation type things, but not something like this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/07/osx-flex-app-is-slow/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Getting closer to beta &#8230; AgileAgenda</title>
		<link>http://www.rogue-development.com/blog2/2007/07/getting-closer-to-beta-agileagenda/</link>
		<comments>http://www.rogue-development.com/blog2/2007/07/getting-closer-to-beta-agileagenda/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 23:23:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[Schedule]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=37</guid>
		<description><![CDATA[I think I have all the functionality working that I care about for a closed beta. I&#8217;ll take a few more days to poke at it to make sure it&#8217;s all working and then release something. For now, here&#8217;s a WINK screencast of some of the functionality:http://www.agileagenda.com/ -Marc]]></description>
			<content:encoded><![CDATA[<p>I think I have all the functionality working that I care about for a closed beta.  I&#8217;ll take a few more days to poke at it to make sure it&#8217;s all working and then release something.</p>
<p>For now, here&#8217;s a WINK screencast of some of the functionality:<br /><a href="http://www.agileagenda.com/">http://www.agileagenda.com/</a></p>
<p>-Marc</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/07/getting-closer-to-beta-agileagenda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile Agenda &#8211; Web View</title>
		<link>http://www.rogue-development.com/blog2/2007/07/agile-agenda-web-view/</link>
		<comments>http://www.rogue-development.com/blog2/2007/07/agile-agenda-web-view/#comments</comments>
		<pubDate>Sat, 21 Jul 2007 17:00:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[AgileAgenda]]></category>
		<category><![CDATA[Schedule]]></category>

		<guid isPermaLink="false">http://rogue-development.com/blog2/?p=36</guid>
		<description><![CDATA[While AgileAgenda will be a desktop application, it will have tight integration with the AgileAgenda.com website. From within the application you&#8217;ll be able to publish a version of your schedule to share with colleagues. Once you do that, you can share your personal url with people who you wish to view the schedule. http://www.agileagenda.com/view.php?schedule=1_6d9624696a3447404913dc0dd964e64a Right [...]]]></description>
			<content:encoded><![CDATA[<p>While AgileAgenda will be a desktop application, it will have tight integration with the <a href="http://www.agileagenda.com/">AgileAgenda.com website.</a>  From within the application you&#8217;ll be able to publish a version of your schedule to share with colleagues.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.rogue-development.com/blog/uploaded_images/screenshot6-739170.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.rogue-development.com/blog/uploaded_images/screenshot6-739166.JPG" alt="" border="0" /></a><br />Once you do that, you can share your <a href="http://www.agileagenda.com/view.php?schedule=1_6d9624696a3447404913dc0dd964e64a">personal url</a> with people who you wish to view the schedule.</p>
<p><a href="http://www.agileagenda.com/view.php?schedule=1_6d9624696a3447404913dc0dd964e64a"><span style="text-decoration: underline;">http://www.agileagenda.com/view.php?schedule=1_6d9624696a3447404913dc0dd964e64a</span></a></p>
<p>Right now, the view is very bare-bones, but it&#8217;ll turn into a full featured viewer in the near future.</p>
<p>This feature gave me a chance to try out AMFPHP, something I&#8217;ve long since wanted to give a spin.  It turned out to be a lot easier to use than I could have imagined.</p>
<p>By making the web view it forced me to make a Flex/browser compatible version of the software.  That gave me a chance to try out the new FB3 profiler, and using that I was able to get the compute time of my (rather large) sample schedule from 15 seconds down to 2 seconds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogue-development.com/blog2/2007/07/agile-agenda-web-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

