<?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>The bAS3 Class</title>
	<atom:link href="http://www.brandondement.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandondement.com/blog</link>
	<description>Adventures in software development</description>
	<lastBuildDate>Tue, 05 Jan 2010 23:51:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flex Formatter Plugin</title>
		<link>http://www.brandondement.com/blog/2010/01/02/flex-formatter-plugin/</link>
		<comments>http://www.brandondement.com/blog/2010/01/02/flex-formatter-plugin/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 23:05:50 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[flex builder]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=90</guid>
		<description><![CDATA[Code formatting is the reason for many a jihad between developers all over, and spending any time at all discussing it is a waste of time.  (So should I stop writing here?  No!  There is an answer!  Press on&#8230;)  Unfortunately this is one issue where it&#8217;s impossible to make everyone happy, so you have to [...]]]></description>
			<content:encoded><![CDATA[<p>Code formatting is the reason for many a jihad between developers all over, and spending any time at all discussing it is a <strong>waste</strong> of time.  (So should I stop writing here?  No!  There is an answer!  Press on&#8230;)  Unfortunately this is one issue where it&#8217;s impossible to make everyone happy, so you have to settle for making everyone equally <strong>UN</strong>happy.</p>
<p>A really painless way to do make everyone equally unhappy is to automate the formatting, and that&#8217;s where the amazing little gadget, the Flex Formatter plugin for Flex and Flash Builder comes in.</p>
<p>The plugin adds a few buttons to the toolbar area of Flex Builder.  These buttons are:</p>
<ul>
<li><strong>Generate ASDoc Comments</strong> &#8211; For your whole file!  In one click!</li>
<li><strong>Generate ASDoc Comment</strong> &#8211; For one item (also in one click!)</li>
<li><strong>Format Flex Code</strong> &#8211; Formats your entire MXML file (or selected lines) &#8230;.with one click</li>
<li><strong>Indent Flex Code</strong> &#8211; Not sure why you&#8217;d use this and not just the previous button, it seems to do the same thing</li>
<li><strong>Rearrange AS Code</strong> &#8211; Same as Format Flex Code, but for your AS files</li>
</ul>
<p>To install it, go to &#8220;Help, Software Updates, Find and Install&#8221; and install from the new remote site:</p>
<p>http://flexformatter.googlecode.com/svn/trunk/FlexFormatter/FlexPrettyPrintCommandUpdateSite/</p>
<p>Grant Skinner has a nice post on this, as well as a settings file that he has exported for use: <a href="http://www.gskinner.com/blog/archives/2009/12/indispensable_p.html" target="_blank">http://www.gskinner.com/blog/archives/2009/12/indispensable_p.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2010/01/02/flex-formatter-plugin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Features of Flash CS5 IDE</title>
		<link>http://www.brandondement.com/blog/2009/12/16/new-features-of-flash-cs5-ide/</link>
		<comments>http://www.brandondement.com/blog/2009/12/16/new-features-of-flash-cs5-ide/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 19:17:11 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flash IDE]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=101</guid>
		<description><![CDATA[Today I came across a really nice walkthrough by Lee Brimelow (@leebrimelow) of the Flash CS5 IDE:
 http://gotoandlearn.com/play?id=118
He demos and discusses the features with some detail, or you can read my cliffs notes version below:

Major upgrades to video support in the IDE

Create cuepoints in the IDE 
Play the video while its on the stage 
Manipulate [...]]]></description>
			<content:encoded><![CDATA[<p>Today I came across a really nice walkthrough by Lee Brimelow (<a href="http://twitter.com/leebrimelow" target="_blank">@leebrimelow</a>) of the Flash CS5 IDE:</p>
<p style="text-align: center;"><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"> </span></span><span style="text-decoration: underline;"><a href="http://gotoandlearn.com/play?id=118" target="_blank">http://gotoandlearn.com/play?id=118</a></span></p>
<p>He demos and discusses the features with some detail, or you can read my cliffs notes version below:</p>
<ul>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Major upgrades to video support in the IDE</span></span>
<ul>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Create cuepoints in the IDE </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Play the video while its on the stage </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Manipulate the video on the stage while its playing </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">More video player skins </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Live video player skin switching<br />
</span></span></li>
</ul>
</li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Font Embedding Improvements</span></span>
<ul>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">New Panel UI </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Embedded fonts are globally managed through the new panel<br />
</span></span></li>
</ul>
</li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">XFL Format</span></span>
<ul>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Replaces FLA format </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">FLA data is contained in multiple XML source files </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Can version control XML files rather than binary FLAs<br />
</span></span></li>
</ul>
</li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">SWF File size History is tracked </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Code Snippets included to implement simple functionality quickly </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Editor now has code hinting and completion for all imported classes (just like Flash Builder) </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Selecting an error in the Compiler Errors brings you to the source </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Tight integration for code editing with Flash Builder </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"> New brushes for Deco tool (Designers will love these) </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">SWFObject2 used as default embedding method (just like Flash Builder) </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">TLF (Text Layout Framework) gives you tons of options for doing awesome things with text</span></span>
<ul>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">flow text between multiple TextFields, TextAreas </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Multi-column text fields </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Possibly automatically scrollable </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Easier Internationalization, including right to left (Arabic) and vertical (Japanese) </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Highlighting conforms to customized text flow<br />
</span></span></li>
</ul>
</li>
</ul>
<p><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">And a bonus!  Here is a walkthrough of how to export your ActionScript project as a native iPhone application!  <span style="color: #0000ff;"><span style="text-decoration: underline;"><a href="http://gotoandlearn.com/play?id=116" target="_blank">http://gotoandlearn.com/play?id=116</a></span></span><br />
</span></span></p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/12/16/new-features-of-flash-cs5-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexPMD</title>
		<link>http://www.brandondement.com/blog/2009/12/10/flexpmd/</link>
		<comments>http://www.brandondement.com/blog/2009/12/10/flexpmd/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 01:46:08 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[flex builder]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=106</guid>
		<description><![CDATA[You probably haven&#8217;t heard about FlexPMD.  It&#8217;s an open source plugin from Adobe for Flex or Flash Builder.  You run it against your source code and it alerts you to &#8220;bad smells,&#8221; or potential bad practices, in your code.  These types of tools, from FlexPMD&#8217;s older brother, PMD from the Java world, and &#8220;Lint&#8221; from [...]]]></description>
			<content:encoded><![CDATA[<p>You probably haven&#8217;t heard about FlexPMD.  It&#8217;s an open source plugin from Adobe for Flex or Flash Builder.  You run it against your source code and it alerts you to &#8220;bad smells,&#8221; or potential bad practices, in your code.  These types of tools, from FlexPMD&#8217;s older brother, PMD from the Java world, and &#8220;Lint&#8221; from the C world have been around for a long time, checking over the shoulders of developers, and frustrating computer science students who are required to compile with no lint warnings.  (All my programming homework in college had this requirement, ugh!)</p>
<p>I ran FlexPMD against the source code for brandondement.com and was really impressed with the results.  Some of the results were of the &#8220;I don&#8217;t care about that&#8221; variety, but Flex PMD can be configured to ignore those, and many more were in the &#8220;Oh really?  You&#8217;re right!&#8221; category.  I&#8217;ve only just begun to use it, but even then I would highly recommend it for anyone who&#8217;s committed to becoming a better programmer.  More information about installation and use can be found at:</p>
<p style="text-align: center;"><a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD+Eclipse+plugin" target="_blank">http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD+Eclipse+plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/12/10/flexpmd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Love Thy Flex Builder Keyboard Shortcuts</title>
		<link>http://www.brandondement.com/blog/2009/11/24/love-thy-flex-builder-keyboard-shortcuts/</link>
		<comments>http://www.brandondement.com/blog/2009/11/24/love-thy-flex-builder-keyboard-shortcuts/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 01:42:25 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[flex builder]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=84</guid>
		<description><![CDATA[It never ceases to amaze me how after all the time I spend using Adobe’s tools, they always have a few more features that I’m not using but should be. So every now and then I go brush up on the keyboard shortcuts in Flex Builder, so here are a few highlights (Command = CTRL [...]]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment--><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">It never ceases to amaze me how after all the time I spend using Adobe’s tools, they always have a few more features that I’m not using but should be. So every now and then I go brush up on the keyboard shortcuts in Flex Builder, so here are a few highlights (Command = CTRL if you’re on Windows):<br />
</span></span></p>
<ul>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>CTRL + 0 (even on Mac)</strong> &#8211; Quick Outline.  Hit this, then start typing to jump right to any variable or method definition in the class </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>Shift + Command + R</strong> – Open Resource.  Hit this, then start typing any file name to open it.  Works on all file types in your project </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>Command + L </strong>– Go To Line.  Opens a dialog where you type in a line number </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>Shift + Command + C</strong> – Puts a block comment around the selected text<br />
</span></span></li>
</ul>
<p><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Strangely there doesn’t seem to be a definitive guide to shortcuts in FB, even the LiveDocs look rather incomplete:</span></span></p>
<p><a href="http://livedocs.adobe.com/flex/3/html/help.html?content=code_editor_9.html">http://livedocs.adobe.com/flex/3/html/help.html?content=code_editor_9.html</a></p>
<p>But a search for “flex builder keyboard shortcuts” returns results from tons of blogs.  Here are a few more gems that weren’t in the LiveDocs:</p>
<ul>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>Command + D</strong> – Deletes a line </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>Command + /</strong> &#8211; Comment/Uncomment a line </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>Shift + Command + D</strong> – Inserts an ASDoc-style comment, including parameter and return declarations! </span></span></li>
<li><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;"><strong>Shift + Command + L</strong> – Opens an outline of all the keyboard shortcuts available<br />
</span></span></li>
</ul>
<p><span style="font-family: Calibri,Verdana,Helvetica,Arial;"><span style="font-size: 11pt;">Also, if any of these don’t suit you, you can always go change them!  In the main menu, click Flex Builder -&gt; Preferences -&gt; General -&gt; Keys (or just type “Keys” in the filter).  Coincidentally, <strong>this </strong>is the most definitive list I could find.</span></span></p>
<p>What keyboard shortcuts do you use that you can&#8217;t live without?</p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/11/24/love-thy-flex-builder-keyboard-shortcuts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>#FollowFriday Flash Edition</title>
		<link>http://www.brandondement.com/blog/2009/11/20/followfriday-flash-edition/</link>
		<comments>http://www.brandondement.com/blog/2009/11/20/followfriday-flash-edition/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 18:57:53 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=80</guid>
		<description><![CDATA[Twitter has quickly become the best source of up to date information about our beloved technology, Flash.  If you’re on Twitter already, here are a few things you might be interested in.  If you’re not on Twitter, here are a few links that should be enough to convince you why you should be!
If [...]]]></description>
			<content:encoded><![CDATA[<p>Twitter has quickly become the best source of up to date information about our beloved technology, Flash.  If you’re on Twitter already, here are a few things you might be interested in.  If you’re <strong>not</strong> on Twitter, here are a few links that should be enough to convince you why you <strong>should</strong> be!</p>
<p>If you have any more suggestions, please share in the comments!</p>
<p><a href="https://twitter.com/InsideRIA" target="_blank">https://twitter.com/InsideRIA</a><br />
InsideRIA.com is a community site from O&#8217;Reilly and Adobe for Rich Internet Application development and design.</p>
<p><a href="https://twitter.com/CreativeTweet" target="_blank">https://twitter.com/CreativeTweet</a><br />
A prolific tweeter who posts random but useful tips, tutorials, and links relevant to Flash and the rest of the Adobe Creative Suite</p>
<p><a href="http://listorious.com/Adobe/adobe-evangelists" target="_blank">http://listorious.com/Adobe/adobe-evangelists</a><br />
A list of Adobe Flash Platform Evangelists, most post great links and info</p>
<p><a href="http://listorious.com/pixelhandler/flash" target="_blank">http://listorious.com/pixelhandler/flash</a><br />
A hand-picked list of people who post about Flash, overlaps somewhat with the evangelists list</p>
<p><a href="https://twitter.com/adobeflash" target="_blank">https://twitter.com/adobeflash</a><br />
The PR face of Flash.  Rarely posts about tech stuff, but if you want to ask a question or have a comment, they’re a good starting place</p>
<p><a href="https://twitter.com/gskinner" target="_blank">https://twitter.com/gskinner</a><br />
Probably the most well known Flash developer in the world.  Ranked “Most Influential” in the ActionScript category by http://wefollow.com/twitter/actionscript</p>
<p><a href="https://twitter.com/fwa" target="_blank">https://twitter.com/fwa</a><br />
Cutting edge website award news, inspiration, latest trends and more from FWA (Favourite Website Awards) founder, Rob Ford.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/11/20/followfriday-flash-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Player 10.1 Beta Released</title>
		<link>http://www.brandondement.com/blog/2009/11/17/flash-player-10-1-beta-released/</link>
		<comments>http://www.brandondement.com/blog/2009/11/17/flash-player-10-1-beta-released/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 21:58:30 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[Flash Player]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=76</guid>
		<description><![CDATA[Adobe has released betas for both Flash Player 10.1 and AIR 2.0 today!  With this release, the Flash platform now fully supports the Open Screen Project.  Earlier this year Adobe announced that they were working with TV manufacturers to get the Flash Player onto a chip that will be embedded in the next [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe has released betas for both Flash Player 10.1 and AIR 2.0 today!  With this release, the Flash platform now fully supports the Open Screen Project.  Earlier this year Adobe announced that they were working with TV manufacturers to get the Flash Player onto a chip that will be embedded in the next generation of TVs, and with this release of the Flash player, they’re addressing the needs of mobile devices.  Here are some highlights:</p>
<ul>
<li>H.264 hardware acceleration</li>
<li>Multi-touch</li>
<li>Gestural and other mobile input models</li>
<li>Accelerometer, Screen Orientation, Sleep Mode, and other common mobile device feature support</li>
</ul>
<p>The best read for the details are the Release Notes, which cut through the marketing fluff and get right to the point<br />
<a href="http://labs.adobe.com/technologies/flashplayer10/releasenotes.pdf" target="_blank">http://labs.adobe.com/technologies/flashplayer10/releasenotes.pdf</a></p>
<p>Official Release Page<br />
<a href="http://labs.adobe.com/technologies/flashplayer10/" target="_blank">http://labs.adobe.com/technologies/flashplayer10/</a></p>
<p>Fluffy Marketing Press Release:<br />
<a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200910/100509AFPforMobileDevicesandPCs.html " target="_blank">http://www.adobe.com/aboutadobe/pressroom/pressreleases/200910/100509AFPforMobileDevicesandPCs.html </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/11/17/flash-player-10-1-beta-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Developer&#8217;s Cycle: Code, Test, Refactor</title>
		<link>http://www.brandondement.com/blog/2009/11/10/the-developers-cycle-code-test-refactor/</link>
		<comments>http://www.brandondement.com/blog/2009/11/10/the-developers-cycle-code-test-refactor/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 00:14:30 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=66</guid>
		<description><![CDATA[Most developers code, test until the code works, and then continue coding, happy that they&#8217;re so good and successful at their job.  When working this way, the split between coding and testing is roughly 50/50 for more junior developers, and trending towards 75/25 for more seasoned pros.  But when working this way, you lose the [...]]]></description>
			<content:encoded><![CDATA[<p>Most developers code, test until the code works, and then continue coding, happy that they&#8217;re so good and successful at their job.  When working this way, the split between coding and testing is roughly 50/50 for more junior developers, and trending towards 75/25 for more seasoned pros.  But when working this way, you lose the most valuable opportunity you have to better yourself and your work. Would you turn in a paper without proof reading it first?  Of course not!  When I work, I try to allocate 20% of the time I&#8217;m given for an assignment to planning and architecture, 60% for actually writing and testing code, and the final 20% to cleaning up the huge mess I made along the way, aka refactoring.  That&#8217;s it kids, the word of the day is &#8220;re-fac-tor-ing.&#8221;</p>
<p><a title="Wikipedia: Code Refactoring" href="http://en.wikipedia.org/wiki/Code_refactoring" target="_blank">Refactoring</a> means taking a chunk of <strong>already working code</strong>, and making it &#8220;better.&#8221; It&#8217;s vitally important that the code already works, otherwise you&#8217;re still developing.  &#8220;Better&#8221; can mean lots of things, from more efficient to more readable, but when talking about refactoring, we&#8217;re mostly talking about more readable, which has trickle down effects making it more efficient.  <strong>The important thing is that you take the time to read what you just wrote. </strong>Like taking notes in class, if you can&#8217;t even read what you wrote the day before, how is anyone else supposed to?  Most of the time developers <strong>can</strong> read what <strong>they</strong> wrote, but not what anyone else wrote, which is the biggest problem that refactoring attempts to solve.</p>
<p>When refactoring, you should look for ways to simplify your code, making it more readable and maintainable.  Here are a few questions to ask yourself:</p>
<p><strong>Is this code still used?</strong></p>
<p>If it&#8217;s not, <strong>don&#8217;t comment it out, delete it! </strong>Version control can always resurrect it if needed, and you&#8217;ll be removing one potential point of confusion for someone maintaining your code down the line.</p>
<p><strong>Is my code documented?</strong></p>
<p>At a minimum you should have inline comments that provide a narrative of what the code block below is doing.  That&#8217;s usually enough for leaf classes that aren&#8217;t meant to be subclassed and are used sparingly.  As code becomes more reused, eventually becoming a library, it should have more complete documentation, like ASDocs.</p>
<p><strong>Do my package, class, function, constant, and variable names still make sense? </strong></p>
<p>This is huge. Names should have an instantly understandable and useful meaning to the human who&#8217;s reading your code.  Don&#8217;t be afraid to have names that are long, but look for ways to shorten the really, really long ones too.  Use that vocabulary, smart guy!  Flex Builder has a very nice feature called &#8220;Rename&#8221; that&#8217;s in the &#8220;Refactor&#8221; menu when you right click a name that is effective at making renaming a trivial task.</p>
<p><strong>Is my code well formatted?</strong></p>
<p>Telling developers where to put whitespace and line breaks is probably the most surefire way to make them secretly hate you.  But you, as a developer, should take pride in your craft and make an effort in making your code at least consistent.  If you write a function with 30 unbroken lines of code, it makes it difficult for someone else to scan what&#8217;s going on.  Sprinkle some line breaks and inline comments in there to logically chunk it up, and you&#8217;ve instantly saved your company time and money in the future.  By the way, Adobe publishes <a title="Adobe Flex Coding Standards" href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions" target="_blank">coding standards</a> that their developers are supposed to follow when writing code for the Flex SDKs.  Does every line of the latest SDK conform to those standards?  No way!  But you can see that the developers make an attempt to make their code readable.</p>
<p><strong>And finally&#8230; </strong></p>
<p>Is there a simpler way to do this?  Is there a better algorithm?  Is there a function or library for this already?  Are my objects properly encapsulated and loosely coupled?  The answers to these questions will get easier for you to answer in time, but the fact that you&#8217;re asking them of yourself has already put you on the right path.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/11/10/the-developers-cycle-code-test-refactor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enforcing Abstract Classes in AS3</title>
		<link>http://www.brandondement.com/blog/2009/10/27/enforcing-abstract-classes-in-as3/</link>
		<comments>http://www.brandondement.com/blog/2009/10/27/enforcing-abstract-classes-in-as3/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 19:18:40 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Design Patterns]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=52</guid>
		<description><![CDATA[One of the most common criticisms of ActionScript is that it doesn&#8217;t include some of the more advance features of other object-oriented languages.  For example, Abstract classes.  Abstract classes are similar to Interfaces in that they provide a common API for: implementers of the interface or subclasses of the Abstract class.  At [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most common criticisms of ActionScript is that it doesn&#8217;t include some of the more advance features of other object-oriented languages.  For example, Abstract classes.  Abstract classes are similar to Interfaces in that they provide a common API for: implementers of the interface or subclasses of the Abstract class.  At the same time, Interfaces and Abstract classes guarantee this common API for classes from other packages to work against.  The Abstract class takes it one step beyond the Interface in that it also adds real functionality to the base class which can reused in its subclasses.</p>
<p>So if ActionScript doesn&#8217;t enforce the Abstract class, how can you guarantee that someone down the line doesn&#8217;t start abusing it?  A passable answer to this question is the seldom-used &#8220;self&#8221; keyword, as seen here:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> AbstractClass<span style="color: #66cc66;">&#40;</span>self:AbstractClass<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>self <span style="color: #66cc66;">!</span>= <span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Error</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Whoa!  You can't instantiate AbstractClass directly suckah!&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>The drawback to this method is that it&#8217;s not enforced at compile-time.  Instead, the error will be thrown at runtime and alert the developer that they did something wrong.  Further, there&#8217;s nothing stopping the developer from then catching the error and ignoring it.  Ruh roh.  So there is no real solution that guarantees the Abstract nature of the class is respected, but at least this little warning will deter all but the most irresponsible of programmers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/10/27/enforcing-abstract-classes-in-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Reference on Your iPhone</title>
		<link>http://www.brandondement.com/blog/2009/09/21/as3-reference-on-your-iphone/</link>
		<comments>http://www.brandondement.com/blog/2009/09/21/as3-reference-on-your-iphone/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 20:32:19 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=59</guid>
		<description><![CDATA[This has flown under my radar since January, but now that I know it exists, its a must-have!  I’ve played with it only briefly so far and noticed that it only includes the class references, more obscure things like keywords aren’t included, but it’s still super handy nonetheless.
Because all the data is stored locally, [...]]]></description>
			<content:encoded><![CDATA[<p>This has flown under my radar since January, but now that I know it exists, its a must-have!  I’ve played with it only briefly so far and noticed that it only includes the class references, more obscure things like keywords aren’t included, but it’s still super handy nonetheless.</p>
<p>Because all the data is stored locally, you can use it while you’re on the go without connectivity, and searching is super fast, even faster than opening a browser and searching if you have your phone handy.</p>
<p><a href="http://www.mikechambers.com/blog/2009/01/26/actionscript-3-reference-for-iphone/" target="_blank">http://www.mikechambers.com/blog/2009/01/26/actionscript-3-reference-for-iphone/</a></p>
<p><a href="http://www.mikechambers.com/blog/2009/01/26/actionscript-3-reference-for-iphone/"><img class="aligncenter size-medium wp-image-60" title="AS3 Reference for iPhone" src="http://www.brandondement.com/blog/wp-content/uploads/2009/10/3210160283_ecc4c5dc80_o-200x300.png" alt="AS3 Reference for iPhone" width="200" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/09/21/as3-reference-on-your-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Camp Atlanta</title>
		<link>http://www.brandondement.com/blog/2009/08/24/flash-camp-atlanta/</link>
		<comments>http://www.brandondement.com/blog/2009/08/24/flash-camp-atlanta/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 17:54:09 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[conference]]></category>

		<guid isPermaLink="false">http://www.brandondement.com/blog/?p=37</guid>
		<description><![CDATA[I just signed up for Flash Camp Atlanta!  It&#8217;s been a while since my last conference, the Adobe onAir Tour, so I&#8217;m very excited to spend another day geeking out with fellow Flash developers.  Although I&#8217;d like to see more Adobe employees, the guests, speakers, and sessions do look like they&#8217;ll be interesting.
The [...]]]></description>
			<content:encoded><![CDATA[<p>I just signed up for Flash Camp Atlanta!  It&#8217;s been a while since my last conference, the <a href="http://onair.adobe.com/">Adobe onAir Tour</a>, so I&#8217;m very excited to spend another day geeking out with fellow Flash developers.  Although I&#8217;d like to see more Adobe employees, <a href="http://events.universalmind.com/page.cfm/flash-camp-atlanta-2009/speakers-and-sessions">the guests, speakers, and sessions</a> do look like they&#8217;ll be interesting.</p>
<p>The networking opportunities are what&#8217;s really gotten me excited though.  Most of the people I work with are all much more experienced than I am and have been around the block a few times, so they know all the names around the interactive industry in Atlanta.  I want to put some faces with those names, as well as spread my own around a bit.</p>
<p style="text-align: center;"><a href="http://www.flashcampatlanta.com/" target="_blank"><img class="size-full wp-image-38 aligncenter" title="Flash Camp Atlanta Badge" src="http://www.brandondement.com/blog/wp-content/uploads/2009/08/fcatl-200.png" alt="Flash Camp Atlanta Badge" width="200" height="200" /></a><br />
<a href="http://www.flashcampatlanta.com/" target="_blank">FlashCampAtlanta.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandondement.com/blog/2009/08/24/flash-camp-atlanta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
