<?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/"
	>

<channel>
	<title>Web App Solution Blog &#187; data visualization</title>
	<atom:link href="http://www.webappsolution.com/wordpress/category/data-visualization/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webappsolution.com/wordpress</link>
	<description>When you're in need of an appsolution</description>
	<pubDate>Thu, 05 Apr 2012 19:39:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dude, Where’s My Chart Labels?</title>
		<link>http://www.webappsolution.com/wordpress/2009/11/19/dude-where%e2%80%99s-my-chart-labels/</link>
		<comments>http://www.webappsolution.com/wordpress/2009/11/19/dude-where%e2%80%99s-my-chart-labels/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 15:43:52 +0000</pubDate>
		<dc:creator>joes</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[data visualization]]></category>

		<category><![CDATA[flex]]></category>

		<category><![CDATA[flex builder]]></category>

		<guid isPermaLink="false">http://www.webappsolution.com/wordpress/?p=669</guid>
		<description><![CDATA[ 
Wondering where your Flex Chart labels are?  Well, you’re not alone. Turns out it may be related to your use of Embedded Fonts and Modules. 

Surfacing a charting component in a Module works just fine when not making use of Embedded Fonts. Embed fonts in your main application or the Module itself and [...]]]></description>
			<content:encoded><![CDATA[<p><!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal">Wondering where your Flex Chart labels are? <span> </span>Well, you’re not alone.<span> </span>Turns out it may be related to your use of Embedded Fonts and Modules.<span> </span></p>
<p class="MsoNormal">
<p class="MsoNormal">Surfacing a charting component in a Module works just fine when not making use of Embedded Fonts.<span> </span>Embed fonts in your main application or the Module itself and Presto! <span> </span>Your labels will disappear.</p>
<p class="MsoNormal">
<p class="MsoNormal">A number of bug tickets have been opened and closed with Adobe, i.e. <a href="http://bugs.adobe.com/jira/browse/FLEXDMV-1883">http://bugs.adobe.com/jira/browse/FLEXDMV-1883</a>, indicating that the issue was resolved with DMV 3.3.0.<span> </span>Currently using DMV 3.4.0.9271, however, and the problem seems to have re-emerged.<span> </span></p>
<p class="MsoNormal">
<p class="MsoNormal">Opening another bug ticket with Adobe and in the meantime commenting out the use of Embedded Fonts.</p>
<p class="MsoNormal">
<p class="MsoNormal">More to follow…<span> </span></p>
<p><!--EndFragment--></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Dude%2C+Where%E2%80%99s+My+Chart+Labels%3F+http://arbpb.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.webappsolution.com/wordpress/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Dude%2C+Where%E2%80%99s+My+Chart+Labels%3F+http://arbpb.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.webappsolution.com/wordpress/2009/11/19/dude-where%e2%80%99s-my-chart-labels/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Headless Flex Builds on EC2 Using Hudson Against Remote SVN Repo on Assembla with FlexPMD</title>
		<link>http://www.webappsolution.com/wordpress/2009/11/16/headless-builds-on-ec2-using-hudson-against-remote-svn-repo-on-assembla-with-flexpmd/</link>
		<comments>http://www.webappsolution.com/wordpress/2009/11/16/headless-builds-on-ec2-using-hudson-against-remote-svn-repo-on-assembla-with-flexpmd/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 14:37:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[assembla]]></category>

		<category><![CDATA[data visualization]]></category>

		<category><![CDATA[ec2]]></category>

		<category><![CDATA[flex]]></category>

		<category><![CDATA[flex builder]]></category>

		<category><![CDATA[flexpmd]]></category>

		<category><![CDATA[hudson]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[tomcat]]></category>

		<category><![CDATA[mxmlc]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.webappsolution.com/wordpress/?p=641</guid>
		<description><![CDATA[We&#8217;re doing a current project requiring continuous integration. We also maintain the SVN repo. There&#8217;s a lot here and you may/may not need all the pieces. We&#8217;re specifically doing headless Flex/DataViz Builds on Amazon EC2 Ubuntu with Hudson against a remote SVN repo on Assembla and have thrown in FlexPMD to see what it can [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re doing a current project requiring continuous integration. We also maintain the SVN repo. There&#8217;s a lot here and you may/may not need all the pieces. We&#8217;re specifically doing headless Flex/DataViz Builds on <a href="http://aws.amazon.com/ec2/" target="_blank">Amazon EC2</a> Ubuntu with <a href="http://hudson-ci.org/" target="_blank">Hudson</a> against a remote SVN repo on <a href="http://www.assembla.com/" target="_blank">Assembla</a> and have thrown in <a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD" target="_blank">FlexPMD</a> to see what it can add to our process.</p>
<p>First, some stuff I’ll assume you already have and know how to work with:</p>
<ul>
<li> EC2 machine running in the Amazon cloud. We’re using one of the Ubuntu disty’s. I’m going to assume you have all the necessary ports open for things like email and such.</li>
<li>Hudson. We’re using version 1.326. We’ve used other CI tools but find Hudson to be very user friendly. You’ll need to have a servlet container ie Tomcat and you just pop hudson.war in and you’re ready to rock.</li>
<li>Remote SVN. You can be using a local one, but. We’re using Assembla since it’s got all the stuff we need to do business in one place and it’s simple to use. Time is money.</li>
<li>Java installed on your server. We’re using version 1.6.0_07</li>
</ul>
<p>Stuff you’ll end up downloading/installing/configuring:</p>
<ul>
<li>Flex SDK</li>
<li>Flex Dataviz components</li>
<li>SVN client</li>
<li>Ant</li>
<li>Flex Ant</li>
<li>Email</li>
</ul>
<h2><strong><span style="font-size: 10pt;">Step 1, Flex</span></strong></h2>
<p><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>192</o:Words> <o:Characters>1096</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>9</o:Lines> <o:Paragraphs>2</o:Paragraphs> <o:CharactersWithSpaces>1345</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Table Normal";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0in 5.4pt 0in 5.4pt;<br />
mso-para-margin-top:0in;<br />
mso-para-margin-right:0in;<br />
mso-para-margin-bottom:10.0pt;<br />
mso-para-margin-left:0in;<br />
mso-pagination:widow-orphan;<br />
font-size:12.0pt;<br />
font-family:"Times New Roman";<br />
mso-ascii-font-family:Cambria;<br />
mso-ascii-theme-font:minor-latin;<br />
mso-fareast-font-family:"Times New Roman";<br />
mso-fareast-theme-font:minor-fareast;<br />
mso-hansi-font-family:Cambria;<br />
mso-hansi-theme-font:minor-latin;}<br />
--> <!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal" style="margin-left: 0.25in;">
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">We’re currently building with the latest stable build of Flex 3.4. Get yourself all logged into your EC2 account and let’s roll. I create a flex/3.4 directory and cd to that directory and then get the latest Flex rev.<span> </span>This is the latest URL:</span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><strong><span style="font-size: 10pt;">wget <a href="http://download.macromedia.com/pub/flex/sdk/flex_sdk_3.4.zip">http://download.macromedia.com/pub/flex/sdk/flex_sdk_3.4.zip</a></span></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">Let’s get the dataviz components as well since they’re a separate install</span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><strong><span style="font-size: 10pt;">wget <a href="http://download.macromedia.com/pub/flex/sdk/datavisualization_sdk_3.4.zip">http://download.macromedia.com/pub/flex/sdk/datavisualization_sdk_3.4.zip</a></span></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">Oh yeah, and if you’re going to be doing unit testing, might as well get that sucker as well</span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><strong><span style="font-size: 10pt;">wget <a href="http://download.macromedia.com/pub/flex/sdk/automation_sdk_3.4.zip">http://download.macromedia.com/pub/flex/sdk/automation_sdk_3.4.zip</a></span></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">Great, so we have all the pieces we need so far. You’ll want to unzip and cp these to wherever you keep your software installs on the server.<span> </span>I’m no unix guru, but, near as I could find out, the common location is /opt. </span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">So, create a /opt/flex directory and unzip the flex_sdk_3.4.zip files there. Then, copy the dataviz zip there and unzip it.</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">cp datavisualization_sdk3.4.zip /opt/flex</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">cd /opt/flex</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"> unzip datavisualization_sdk3.4.zip</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Table Normal";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0in 5.4pt 0in 5.4pt;<br />
mso-para-margin-top:0in;<br />
mso-para-margin-right:0in;<br />
mso-para-margin-bottom:10.0pt;<br />
mso-para-margin-left:0in;<br />
mso-pagination:widow-orphan;<br />
font-size:12.0pt;<br />
font-family:"Times New Roman";<br />
mso-ascii-font-family:Cambria;<br />
mso-ascii-theme-font:minor-latin;<br />
mso-hansi-font-family:Cambria;<br />
mso-hansi-theme-font:minor-latin;}<br />
--> <!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">This will extract the following into the SDK 3 installation </span></p>
<ol style="margin-top: 0in;" type="1">
<li class="MsoNormal" style="margin-top: 0.1pt; margin-bottom: 0.1pt;"><span style="font-size: 10pt; font-family: Times;">datavisualization.swc into the      frameworkslibs folder</span></li>
<li class="MsoNormal" style="margin-top: 0.1pt; margin-bottom: 0.1pt;"><span style="font-size: 10pt; font-family: Times;">datavisualization__3.0.9147.swz      and datavisualization__3.0.9147.swf into the frameworksrsls folder </span></li>
<li class="MsoNormal" style="margin-top: 0.1pt; margin-bottom: 0.1pt;"><span style="font-size: 10pt; font-family: Times;">datavisualization_rb.swc into      the appropriate frameworkslocale&lt;locale&gt; folder</span></li>
</ol>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">Let’s make sure we put the Flex compiler on the class path. On our server, the default shell is bash. You’re setup may be different, but essentially, you want to find the properties file for you shell (I’m using /root/.bashrc) and add the following line to the bottom of it:</span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><strong><span style="font-size: 10pt;">export PATH=/opt/flex/bin:$PATH</span></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">Now let’s test it. You may need to log out and then back into your shell. At the command prompt, enter mxmlc and hit return. You should see something like</span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><strong><span style="font-size: 10pt;">Loading configuration file /opt/flex/frameworks/flex-config.xml</span></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><strong><span style="font-size: 10pt;">Error: a target file must be specified</span></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">That’s a good error. It means that the Flex compiler is now accessible on your system. If nothing comes back, you’re just at the command prompt, you may not be using the right shell properties file.</span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">In order to build projects that use the dataviz components without having the watermark on your charts and graphs, you’ll need to apply a Flex license to the installation. You do this in the flex-config.xml file located in /opt/flex/frameworks.<span> </span>Towards the bottom of the file you’ll see some commented out xml for doing so:</span></p>
<p><!--EndFragment--></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt;"><span> </span></span><span style="font-size: 8pt;">&lt;licenses&gt; <span> </span><br />
<span> </span><span> </span>&lt;license&gt;<br />
<span> </span><span> </span><span> </span>&lt;product&gt;string&lt;/product&gt;<br />
<span> </span><span> </span><span> </span><span> </span>&lt;serial-number&gt;number&lt;/serial-number&gt;<br />
<span> </span><span> </span>&lt;/license&gt;<br />
<span> </span>&lt;/licenses&gt;</span><strong></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<h2><strong><strong><span style="font-size: 10pt;">Step 2, SVN</span></strong></strong></h2>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>235</o:Words> <o:Characters>1343</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>11</o:Lines> <o:Paragraphs>2</o:Paragraphs> <o:CharactersWithSpaces>1649</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Table Normal";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0in 5.4pt 0in 5.4pt;<br />
mso-para-margin-top:0in;<br />
mso-para-margin-right:0in;<br />
mso-para-margin-bottom:10.0pt;<br />
mso-para-margin-left:0in;<br />
mso-pagination:widow-orphan;<br />
font-size:12.0pt;<br />
font-family:"Times New Roman";<br />
mso-ascii-font-family:Cambria;<br />
mso-ascii-theme-font:minor-latin;<br />
mso-hansi-font-family:Cambria;<br />
mso-hansi-theme-font:minor-latin;}<br />
--> <!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal" style="margin-left: 0.25in;">
<p class="MsoNormal" style="margin-left: 0.25in;">
<p class="MsoNormal" style="margin-left: 0.25in;"><span style="font-size: 10pt;">We are accessing an SVN repo on our Assembla account. The easiest way to make this happen from the EC2 is to just install SVN. So, from the command prompt:<br />
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--></span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">apt-get install subversion</span></strong><strong></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">If you run into any errors, I always find it helpful to refresh the list:</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">apt-get update</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"> </span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">If all went well, you should be able to log into your remote repo:</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">svn &#8211;username &lt;your_username&gt; &#8211;password &lt;your_password&gt; &#8211;no-auth-cache checkout &lt;some_project_name&gt;</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">If successful, you’re going to have a checked out version of some_project_name in your current directory.</span></p>
<h2 class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></h2>
<h2 class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></h2>
<h2><strong><strong><span style="font-size: 10pt;">Step 3, Ant<br />
</span></strong></strong></h2>
<p><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">We’re going to be using Ant as our build process. It will called via a Hudson job. Let’s get and install Ant.</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">apt-get install ant</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">Once that completes, you should be able to type ant at a command prompt. If it installed successfully, you should see something similar to (unless there happens to be a build.xml file in your current directory):</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">Buildfile: build.xml</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">BUILD FAILED</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">This is good. We now have Ant installed. The only other Ant specific thing we’ll need to do is copy the FlexTasks.jar from your Flex SDK into your new Ant install. </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">Let’s find where Ant was installed. At a command prompt:</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">which ant</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">(which will most likely return)</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">/usr/bin/ant</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><span> </span>Now, navigate to your Flex SDK Ant lib directory. The Flex SDK now contains the flexTasks.jar we need.</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">cd /opt/flex/an/lib</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">Now just copy this to the location of your Ant install’s lib directory (typical):</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">cp flexTasks.jar /usr/share/ant/lib</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"><br />
</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in;"><span style="font-size: 10pt; font-family: Times;"> </span></p>
<p style="margin: 0.1pt 0in 0.1pt 0.25in;">If you do not copy this file to the lib directory, you must specify it by using Ant&#8217;s <samp>-lib</samp></p>
<p style="margin: 0.1pt 0in 0.1pt 0.25in;">option on the command line when you make a project.</p>
<p style="margin: 0.1pt 0in 0.1pt 0.25in;">
<h2><strong><strong><span style="font-size: 10pt;">Step 4, Setup Hudson Job<br />
</span></strong></strong></h2>
<p style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p><strong><strong><strong><strong><span style="font-size: 10pt;"><br />
</span></strong></strong></strong></strong></p>
<h2 style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;"> </span></strong></p>
</h2>
<p style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong> Plugins</strong><!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:minor-latin;} --></p>
<p style="padding-left: 30px;"><!--[endif]--> <!--StartFragment--><span style="font-size: 10pt; font-family: Times;">I’m assuming you have a working familiarity with Hudson. If not, there’s a ton of info via your install directly and on the web. We have a few extra plugins installed. The Violations plugin is useful for code analysis via PMD files if you structure your ant files to use it. The Email Extension gives you a bit more flexibility than the basic email tool.</span></p>
<p><span style="font-size: 10pt; font-family: Times;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/plugins.png"><img class="aligncenter size-medium wp-image-652" title="plugins" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/plugins-300x159.png" alt="plugins" width="300" height="159" /></a></span> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>22</o:Words> <o:Characters>128</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>1</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>157</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:minor-latin;} --></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in; padding-left: 30px;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">Configuration</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">Here’s a look at few items we needed in the Hudon configuration page to get things to work smoothly</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">Specify the Ant location on your server.</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/ant.png"><img class="aligncenter size-medium wp-image-647" title="ant" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/ant-300x102.png" alt="ant" width="300" height="102" /></a><br />
</span></p>
<p style="padding-left: 30px;"><!--EndFragment--></p>
<p style="margin: 0.1pt 0in 0.1pt 0.25in; padding-left: 30px;">
<p><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>42</o:Words> <o:Characters>240</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>2</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>294</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--></p>
<p><!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:minor-latin;} --></p>
<p><!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">For the Extended E-mail Notification plugin. We’ve defined an email account on our system called hudson. We also use gmail for our corporate email. We’re essentially relaying to gmail which requires SMTP auth and SSL (note: we haven’t entered anything in the default Hudson E-mail section):</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/email.png"><img class="aligncenter size-medium wp-image-648" title="email" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/email-300x216.png" alt="email" width="300" height="216" /></a></span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>45</o:Words> <o:Characters>258</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>2</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>316</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:minor-latin;} --></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><strong><span style="font-size: 10pt; font-family: Times;">Job Setup</span></strong></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">Go the usual steps of creating a new job. Here are the pertinent parts.</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">In Source Code Management, we’ll need to point to our remote SVN. When you click on the “?” next to the Repository URL, you will see the grey box and be able to provide login credentials to your SVN repo and test the connection:</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/svn.png"><img class="aligncenter size-medium wp-image-653" title="svn" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/svn-300x115.png" alt="svn" width="300" height="115" /></a></span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>60</o:Words> <o:Characters>347</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>2</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>426</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p><!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">We’re not going to specify any build triggers. The reason is that Assembla gives the ability to access the post-commit hook in SVN via their “Webhook” plugin. In that tool, all we have to do is specify the Hudson job URL and with each check in of code, the project is checked out, built, and success/failure notification sent to our dev group. This is the key to the ‘continuous integration’ aspect of this whole setup.</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/webhook.png"><img class="aligncenter size-medium wp-image-654" title="webhook" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/webhook-300x207.png" alt="webhook" width="300" height="207" /></a></span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>57</o:Words> <o:Characters>326</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>2</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>400</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:minor-latin;} --></p>
<p style="padding-left: 30px;"><!--[endif]--> <!--StartFragment--><span style="font-size: 10pt; font-family: Times;">We do need to tell Hudson to use Ant to do the builds. We have a target in the build.xml file (that is in the root of our Flex project) called main.hudson. To be on the safe side, I’ve specified the full path to the build file. We specify the ant install we configured in the Hudson configuration page earlier. It would probably be helpful to give it more meaningful name like ‘ant_version_x’. </span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/jobant.png"><img class="aligncenter size-medium wp-image-650" title="jobant" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/jobant-300x132.png" alt="jobant" width="300" height="132" /></a></span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>45</o:Words> <o:Characters>259</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>2</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>318</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:minor-latin;} --></p>
<p><!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">FlexPMD is another great tool we use that profiles your code based upon a bunch of best practices defined by the Flex group at Adobe. You can also specify your own criteria to use in the analysis. It’s worth checking out. Note the format of the XML filename pattern used. It took a while to figure that part out!</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/flexpmd.png"><img class="aligncenter size-medium wp-image-649" title="flexpmd" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/flexpmd-300x229.png" alt="flexpmd" width="300" height="229" /></a></span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal.dotm</o:Template> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>8</o:Words> <o:Characters>48</o:Characters> <o:Company>Web App Solution, Inc.</o:Company> <o:Lines>1</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>58</o:CharactersWithSpaces> <o:Version>12.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>0</w:Zoom> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting /> <w:PunctuationKerning /> <w:DrawingGridHorizontalSpacing>18 pt</w:DrawingGridHorizontalSpacing> <w:DrawingGridVerticalSpacing>18 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:DontGrowAutofit /> <w:DontAutofitConstrainedTables /> <w:DontVertAlignInTxbx /> </w:Compatibility> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="276"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */ table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:minor-latin;} --></p>
<p><!--[endif]--> <!--StartFragment--></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;">We configure the Editable Email Notification accordingly:</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><span style="font-size: 10pt; font-family: Times;"><br />
</span></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/jobemail.png"><img class="aligncenter size-medium wp-image-651" title="jobemail" src="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/11/jobemail-300x79.png" alt="jobemail" width="300" height="79" /></a></p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">And that&#8217;s pretty much it. I&#8217;ll be pushing up a blog shortly that will walk through the whole ant build used for this project. It uses modules, all sorts of RSLs, FTP, and so on.</p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;">Happy Flexing.</p>
<p class="MsoNormal" style="margin: 0.1pt 0in 0.1pt 0.25in;"><!--EndFragment--></p>
<p><!--EndFragment--><!--EndFragment--></p>
<p><!--EndFragment--></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Headless+Flex+Builds+on+EC2+Using+Hudson+Against+Remote+SVN+Repo+on+Assembla+with+FlexPMD+http://pbprr.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.webappsolution.com/wordpress/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Headless+Flex+Builds+on+EC2+Using+Hudson+Against+Remote+SVN+Repo+on+Assembla+with+FlexPMD+http://pbprr.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.webappsolution.com/wordpress/2009/11/16/headless-builds-on-ec2-using-hudson-against-remote-svn-repo-on-assembla-with-flexpmd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Axiis Drill Down Example</title>
		<link>http://www.webappsolution.com/wordpress/2009/11/02/axiis-drill-down-example/</link>
		<comments>http://www.webappsolution.com/wordpress/2009/11/02/axiis-drill-down-example/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 20:25:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[axiis]]></category>

		<category><![CDATA[data visualization]]></category>

		<category><![CDATA[flex]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.webappsolution.com/wordpress/?p=572</guid>
		<description><![CDATA[I&#8217;ve seen a number of requests for a drill down version of an Axiis chart. We have a current client that will need that functionality as well so I figured I&#8217;d give it a shot.
The approach I&#8217;m taking is pretty straight forward. Put a drill down layout on the stage and make it invisible initially. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen a number of requests for a drill down version of an Axiis chart. We have a current client that will need that functionality as well so I figured I&#8217;d give it a shot.</p>
<p>The approach I&#8217;m taking is pretty straight forward. Put a drill down layout on the stage and make it invisible initially. When the user clicks on an item in the primary chart that we want to drill in, capture the event, set a dataProvider specific to the portion of the data that represents the drill down, hide the primary layout and show the drill down layout.</p>
<p>Building off the familiar approach for the Axiis examples, add a few objects for the drill down layout to use</p>
<pre class="brush: as3;">
&lt;mx:Object id=“dataProvider”/&gt;
&lt;mx:String id=“verticalField”/&gt;
&lt;mx:String id=“dataField”&gt;date&lt;/mx:String&gt;
&lt;mx:String id=“labelField”&gt;date.value&lt;/mx:String&gt;
&lt;mx:Object id=“drilldataProvider”/&gt;
&lt;mx:String id=“drilldataField”/&gt;
&lt;mx:String id=“drilllabelField”/&gt;
</pre>
<p>The drill down layout can be whatever type you choose. Here I&#8217;m just going to display the data as a simple bar chart.</p>
<pre class="brush: as3;">
&lt;axiis:HBoxLayout
      id=“drillDownLayout”
      x=“25”
      y=“0”
      showDataTips=“true”
      height=“{dc.height-70}”
      width=“{dc.width-25}”
      visible=“false”
      dataProvider=“{drilldataProvider}”
      percentGap=“0”
      dataField=“{drilldataField}”
      labelField=“{drilllabelField}”
      itemClick=“this.itemClick(event);”&gt;

    &lt;axiis:drawingGeometries&gt;
       &lt;degrafa:RegularRectangle
             id=“drillRectangle”
             x=“{drillDownLayout.currentReference.x}”
             y=“{drillDownLayout.height-vScale.valueToLayout(drillDownLayout.currentValue)}”
             width=“{drillDownLayout.currentReference.width}”
             height=“{vScale.valueToLayout(drillDownLayout.currentValue)}”
             stroke=“{colStroke}”/&gt;

       &lt;degrafa:RasterText
             text=“{drillDownLayout.currentLabel}”
             fontFamily=“Arial”
             align=“center”
             x=“{drillDownLayout.currentReference.x}”
             width=“{drillDownLayout.currentReference.width}”
             y=“{drillDownLayout.height+5}”/&gt;
     &lt;/axiis:drawingGeometries&gt;
&lt;/axiis:HBoxLayout&gt;
</pre>
<p>The only real piece of interest in this is the addition of a handler for the itemClick event.</p>
<pre class="brush: as3;">
itemClick=&quot;this.itemClick(event)&quot;
</pre>
<p>Here&#8217;s the code that will handle the click of an item in the layout. Note that it will check to see which layout is currently visible so we can get back to the primary chart.</p>
<pre class="brush: as3;">
public function itemClick(evt:LayoutItemEvent):void
{
       // Switch back to main view
       if ( this.drillDownLayout.visible )
       {
            this.drilldataProvider = null;
            this.drillDownLayout.visible = false;
            this.hLayout.visible = true;
            dc.invalidateDisplayList();
         }else {
             var ac:ArrayCollection = evt.item.layout.dataProvider as ArrayCollection;
             this.hLayout.visible = false;
             this.drillDownLayout.visible = true;
             this.drilldataField = &amp;amp;quot;value&amp;amp;quot;;
             this.drilllabelField = &amp;amp;quot;value&amp;amp;quot;;
             this.drillRectangle.fill = ( evt.item.data.type == &quot;receivables&quot; ) ? this.receivablesStack.fill : this.payablesStack.fill;
             this.drilldataProvider = ac;
             dc.invalidateDisplayList();
        }
}
</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Axiis+Drill+Down+Example+http://dzk4m.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.webappsolution.com/wordpress/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Axiis+Drill+Down+Example+http://dzk4m.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.webappsolution.com/wordpress/2009/11/02/axiis-drill-down-example/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Axiis Examples with Lots of Comments</title>
		<link>http://www.webappsolution.com/wordpress/2009/10/17/axiis-examples-with-lots-of-comments/</link>
		<comments>http://www.webappsolution.com/wordpress/2009/10/17/axiis-examples-with-lots-of-comments/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 09:32:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[air]]></category>

		<category><![CDATA[data visualization]]></category>

		<category><![CDATA[flex]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[axiis]]></category>

		<guid isPermaLink="false">http://www.webappsolution.com/wordpress/?p=561</guid>
		<description><![CDATA[We&#8217;ve begun using Axiis on a current client&#8217;s project. The application is loaded with graphs and charts and when we hand off the project, we needed to provide a framework for the development staff to quickly build and add new graphing components. Some of the charts are simple but there are some more complicated ones [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve begun using <a href="http://www.axiis.org/index.html">Axiis</a> on a current client&#8217;s project. The application is loaded with graphs and charts and when we hand off the project, we needed to provide a framework for the development staff to quickly build and add new graphing components. Some of the charts are simple but there are some more complicated ones we need to build and will be built in the future. The current Flex DataViz components work fine for simple tasks. But, anyone who has had to go beyond the basics understands the pain that you quickly begin to feel.</p>
<p>Fortunately, I caught <a href="http://www.twgonzalez.com/blog/">Tom Gonzalez&#8217;s</a>, (<a href="http://www.brightpointinc.com/">BrightPoint Consulting)</a> lecture at MAX this month and was blown away. The things they&#8217;re doing with the Axiis framework and <a>Degrafa</a> are off the charts! (pun intended)</p>
<p>I&#8217;ll leave the real discovery to you to check out the Axiis site, but, Axiis is a &#8217;specialized framework that implements specific design patterns that can be used to create your own visualizations&#8217;. It&#8217;s not a pre-built collection of charting components. They&#8217;ve developed a great way of abstracting the basic building blocks of doing data visualization.</p>
<p>Axiis is currently in beta release. There are a lot of great examples on their site so check them out. If you&#8217;re new to Degrafa, it&#8217;s worth your while to do a bit of reading and check out the cool examples they have on their site as well since many of the examples use Degrafa.</p>
<p>Being in beta, the documentation is a work in progress. The examples from the site are great and really cover a lot of space, but I did struggle with some of the concepts at first. So I&#8217;ve taken three of the first examples we needed to borrow from and hyper-commented them for clarity.<br />
I&#8217;ll continue to add to the collection over time.</p>
<p><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/10/hclusterstackexample.mxml">Cluster Stack Example</a></p>
<p><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/10/lineareaseriesexample.mxml">Linear Series Example</a></p>
<p><a href="http://www.webappsolution.com/wordpress/wp-content/uploads/2009/10/hclustercolumnexample.mxml">Cluster Column Example</a></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Axiis+Examples+with+Lots+of+Comments+http://4n3we.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.webappsolution.com/wordpress/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Axiis+Examples+with+Lots+of+Comments+http://4n3we.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.webappsolution.com/wordpress/2009/10/17/axiis-examples-with-lots-of-comments/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

