<?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 Log &#187; Geek</title>
	<atom:link href="http://ahatch.com/log/category/geek/feed/" rel="self" type="application/rss+xml" />
	<link>http://ahatch.com/log</link>
	<description>Andy Hatch &#124; Brooklyn, NY</description>
	<lastBuildDate>Wed, 08 Sep 2010 01:15:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>?plead=</title>
		<link>http://ahatch.com/log/2010/08/plead/</link>
		<comments>http://ahatch.com/log/2010/08/plead/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 20:39:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[tumblr]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=1759</guid>
		<description><![CDATA[<a href='http://farm5.static.flickr.com/4077/4902520836_7f21d8724d_b.jpg'><img src='http://farm5.static.flickr.com/4077/4902520836_7f21d8724d.jpg'/></a>]]></description>
			<content:encoded><![CDATA[<p><a href='http://farm5.static.flickr.com/4077/4902520836_7f21d8724d_b.jpg'><img src='http://farm5.static.flickr.com/4077/4902520836_7f21d8724d.jpg'/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2010/08/plead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Voice open to the public.</title>
		<link>http://ahatch.com/log/2010/06/google-voice-open-to-the-public/</link>
		<comments>http://ahatch.com/log/2010/06/google-voice-open-to-the-public/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 18:38:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[number]]></category>
		<category><![CDATA[parents]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[voice]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=1657</guid>
		<description><![CDATA[I was one of the few lucky users to receive a Google Voice invite pretty early in the game, so I've been using it for a few months now.  I found a good use for Google number even before I had an Android phone, using it to receive voicemail, <a href="http://ahatch.com/log/2010/04/best-voicemail-ever/">like this one</a>, while I was <a href="http://ahatch.com/wanderlust">away this winter</a>.  Engadget <a href="http://www.engadget.com/2010/06/22/google-voice-now-open-to-the-public/" target="_blank">just reported</a> that Voice has been opened to the public!

<object width="500" height="305"><param name="movie" value="http://www.youtube.com/v/cOZU7BOeQ58&#038;rel=0&#038;color1=0xffffff&#038;color2=0xffffff&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/cOZU7BOeQ58&#038;rel=0&#038;color1=0xffffff&#038;color2=0xffffff&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="305"></embed></object>

I just need to get my parents on board now.  There are literally 5 different numbers to call between the 2 of them.

More on the <a href="http://www.google.com/googlevoice/about.html" target="_blank">Google Voice Features page</a>.]]></description>
			<content:encoded><![CDATA[<p>I was one of the few lucky users to receive a Google Voice invite pretty early in the game, so I&#8217;ve been using it for a few months now.  I found a good use for Google number even before I had an Android phone, using it to receive voicemail, <a href="http://ahatch.com/log/2010/04/best-voicemail-ever/">like this one</a>, while I was <a href="http://ahatch.com/wanderlust">away this winter</a>.  Engadget <a href="http://www.engadget.com/2010/06/22/google-voice-now-open-to-the-public/" target="_blank">just reported</a> that Voice has been opened to the public!</p>
<p><object width="500" height="305"><param name="movie" value="http://www.youtube.com/v/cOZU7BOeQ58&#038;rel=0&#038;color1=0xffffff&#038;color2=0xffffff&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/cOZU7BOeQ58&#038;rel=0&#038;color1=0xffffff&#038;color2=0xffffff&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="305"></embed></object></p>
<p>I just need to get my parents on board now.  There are literally 5 different numbers to call between the 2 of them.</p>
<p>More on the <a href="http://www.google.com/googlevoice/about.html" target="_blank">Google Voice Features page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2010/06/google-voice-open-to-the-public/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FDT 4 — FAQ</title>
		<link>http://ahatch.com/log/2010/06/fdt-4-%e2%80%94-faq/</link>
		<comments>http://ahatch.com/log/2010/06/fdt-4-%e2%80%94-faq/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 14:06:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as2]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fdt]]></category>
		<category><![CDATA[nerd]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=1638</guid>
		<description><![CDATA[
<a href="http://www.solutions.powerflasher.com/jp/fdt/fdt-4-beta/faq/?sword_list[0]=actionscript" target="_blank"><img src="http://farm2.static.flickr.com/1212/4721130898_b50fa36518_b.jpg" alt="" /></a>


I wish this didn't matter as much as it actually does.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.solutions.powerflasher.com/jp/fdt/fdt-4-beta/faq/?sword_list[0]=actionscript" target="_blank"><img src="http://farm2.static.flickr.com/1212/4721130898_b50fa36518_b.jpg" alt="" /></a></p>
<p>I wish this didn&#8217;t matter as much as it actually does.</p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2010/06/fdt-4-%e2%80%94-faq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom URLLoader with timeout.</title>
		<link>http://ahatch.com/log/2009/08/custom-urlloader-with-timeout/</link>
		<comments>http://ahatch.com/log/2009/08/custom-urlloader-with-timeout/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 21:23:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[ads]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[crossdomain]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[timeout]]></category>
		<category><![CDATA[urlloader]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=645</guid>
		<description><![CDATA[I came across an issue yesterday loading ads from ad.doubleclick.net. For some reason, the crossdomain.xml file from ad.doubleclick.net was unavailable and the URLLoader class making the call eventually threw a Security Error, as the crossdomain policy is the first thing it looks for when making calls outside the SWF&#8217;s Security Domain. This is easily handled [...]]]></description>
			<content:encoded><![CDATA[<p>I came across an issue yesterday loading ads from ad.doubleclick.net.  For some reason, the <a href="http://ad.doubleclick.net/crossdomain.xml">crossdomain.xml file from ad.doubleclick.net</a> was unavailable and the URLLoader class making the call eventually threw a <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/SecurityError.html">Security Error</a>, as the crossdomain policy is the first thing it looks for when making calls outside the SWF&#8217;s <a href="http://livedocs.adobe.com/flex/3/langref/flash/system/SecurityDomain.html">Security Domain</a>.</p>
<p>This is easily handled by listening for Security Error Events from the URLLoader and additionally wrapping the <code>load</code> call in a <code>try</code>/<code>catch</code> statement.  However, I was surprised to find out that URLLoader has no built-in timeout for altogether unavailable addresses.  In most cases, a Security Error would be thrown when a crossdomain policy file fails to load, but that takes about 30 seconds.  I&#8217;m still a little confused on the details of this, but check out the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html#comments">comments on the URLLoader in the AS3 Language Reference</a>.</p>
<p>Enter <a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/classes/com/hatch/net/URLLoaderDeluxe.as">URLLoaderDeluxe</a>.  I&#8217;m sure this has been done before, but I failed to find code out there that was ready to go.  <a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/classes/com/hatch/net/URLLoaderDeluxe.as">URLLoaderDeluxe</a> extends <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html">URLLoader</a> and adds an optional timeout value to the constructor.</p>
<p>In addition to handling non-existent or unavailable urls, turns out this aids in dealing with ad blocker plugins on browsers.  The ad blocker will basically remap a call to a url it recognizes as an ad server, rendering it unavailable. In these cases, a simple timeout on the call can save you from errors, fail the load, and send the app on it&#8217;s way.  <a href="http://jessewarden.com/2007/12/exception-handling-in-actionscript-3-for-adblock-plus.html">Jesse Warden wrote on this a while ago</a>, and his solution coincides with what I&#8217;ve done here.</p>
<p>Please let me know if this helps, if I&#8217;m totally off, or if you know anything else about this.</p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2009/08/custom-urlloader-with-timeout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I learned today: setting up svn externals.</title>
		<link>http://ahatch.com/log/2009/08/what-i-learned-today-setting-up-svn-externals/</link>
		<comments>http://ahatch.com/log/2009/08/what-i-learned-today-setting-up-svn-externals/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 22:02:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[commandline]]></category>
		<category><![CDATA[external]]></category>
		<category><![CDATA[externals]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=617</guid>
		<description><![CDATA[Pretty straightforward stuff. It&#8217;s a simple propedit call, propedit svn:externals ., where &#8216;.&#8216; is the directory&#8217;s property you would like to edit. I&#8217;ve been adding external library linkage to the top-level directory in the repository to keep everything in the same place, but it really doesn&#8217;t matter where you add your external links. The link [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty straightforward stuff.  It&#8217;s a simple <code>propedit</code> call, </p>
<p><code>propedit svn:externals .</code>, where &#8216;<code>.</code>&#8216; is the directory&#8217;s property you would like to edit.</p>
<p>I&#8217;ve been adding external library linkage to the top-level directory in the repository to keep everything in the same place, but it really doesn&#8217;t matter where you add your external links.</p>
<p>The link in the externals property file should look like this:</p>
<p><code>path/to/library http://svn.site.com/mylib</code></p>
<p>I ran into one issue where svn would give me a warning about a locked working copy,</p>
<p><code>svn: warning: Working copy 'my_directory' locked</code></p>
<p><a href="http://www.dirtystylus.com/blog/">Mark</a> pointed me to <a href="http://weierophinney.net/matthew/archives/132-svnexternals.html">this article</a>, which stated towards the bottom, </p>
<blockquote><p>One thing to note: any directory you specify for an svn:externals checkout should <strong>not</strong> already exist in your repository.</p></blockquote>
<p>So, in <code>path/to/library http://svn.site.com/mylib</code>, the end directory, <code>library</code>, will be created by the external link and should not exist, or else you will get the above error.</p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2009/08/what-i-learned-today-setting-up-svn-externals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last resort.</title>
		<link>http://ahatch.com/log/2009/08/last-resort/</link>
		<comments>http://ahatch.com/log/2009/08/last-resort/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 14:53:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[On My Mind]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tweet]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=610</guid>
		<description><![CDATA[Feeling disconnected from the rest of the Internet because of Twitter being down, I resorted to updating my Facebook status manually with a quick message about now being able to Tweet about Twitter being down, only to receive this error message: Transport error (#1001) while retrieving data from endpoint `/ajax/updatestatus.php': A network error occurred. Check [...]]]></description>
			<content:encoded><![CDATA[<p>Feeling disconnected from the rest of the Internet because of Twitter being down, I resorted to updating my Facebook status manually with a quick message about now being able to Tweet about Twitter being down, only to receive this error message: </p>
<p><code>Transport error (#1001) while retrieving data from endpoint `/ajax/updatestatus.php': A network error occurred. Check that you are connected to the internet.</code>*</p>
<p>Lastly I&#8217;ve turned to my blog to broadcast my quick 140-ish character thoughts to the world. But who will read them?  Who checks their blog reader every ten minutes to see who is saying what?  Does anyone even have my feed in their reader?  If Twitter is down for an hour, will it appear as a black hole in time years from now?</p>
<p>*<em>internet</em> should be in Title case, Facebook.</p>
<p>Also see,<br />
<a href="http://istwitterdown.com/">http://istwitterdown.com/</a><br />
<a href="http://downforeveryoneorjustme.com/twitter.com">http://downforeveryoneorjustme.com/twitter.com</a><br />
<a href="http://status.twitter.com/">http://status.twitter.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2009/08/last-resort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ThunderBolt AS3 debugging.</title>
		<link>http://ahatch.com/log/2009/08/thunderbolt-as3-debugging/</link>
		<comments>http://ahatch.com/log/2009/08/thunderbolt-as3-debugging/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 16:17:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[thunderbolt]]></category>
		<category><![CDATA[trace]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=606</guid>
		<description><![CDATA[I’ve been taking a look at a new (to me) debugging utility for AS3 called ThunderBolt. You can use the ThunderBolt library to send debugging info to the console in Firebug. Additionally, the ThunderBolt AS3 console is a standalone AIR app that displays all the same data without Firebug installed. At the very least, it’s [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been taking a look at a new (to me) debugging utility for AS3 called ThunderBolt.  You can use the ThunderBolt library to send debugging info to the console in Firebug.  Additionally, the ThunderBolt AS3 console is a standalone AIR app that displays all the same data without Firebug installed.  At the very least, it’s a cool new way to view Flash’s trace output (especially if you’re tired of using Flash Tracer in Firefox.</p>
<p>ThunderBolt project:</p>
<p>http://code.google.com/p/flash-thunderbolt/</p>
<p>ThunderBolt Console:</p>
<p>http://code.google.com/p/flash-thunderbolt/wiki/ThunderBoltAS3Console</p>
<p>Anyone been using this?</p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2009/08/thunderbolt-as3-debugging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Note to self (mxmlc compiler arguments).</title>
		<link>http://ahatch.com/log/2009/07/note-to-self-mxmlc-compiler-arguments/</link>
		<comments>http://ahatch.com/log/2009/07/note-to-self-mxmlc-compiler-arguments/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 18:01:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[mxmlc]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=593</guid>
		<description><![CDATA[Here they are. All the mxmlc compiler arguments. table { font-size: 9pt; border-top:1px solid gray; border-left:0px solid gray; } table td { border-right:0px solid gray; border-bottom:1px solid gray; } -benchmark output performance benchmark -compiler.accessible alias -accessible generate an accessible SWF -compiler.actionscript-file-encoding &#60;string&#62; alias -actionscript-file-encoding specifies actionscript file encoding. If there is no BOM in the [...]]]></description>
			<content:encoded><![CDATA[<p>Here they are. All the mxmlc compiler arguments.</p>
<p><br/></p>
<style type="text/css">
table {
	font-size: 9pt;
	border-top:1px solid gray;
	border-left:0px solid gray;
}
table td {
        border-right:0px solid gray;
	border-bottom:1px solid gray;
}
</style>
<table>
<tr>
<td>-benchmark</td>
<td>output performance benchmark</td>
</tr>
<tr>
<td>-compiler.accessible</td>
<td>alias -accessible<br />
<br />generate an accessible SWF</td>
</tr>
<tr>
<td>-compiler.actionscript-file-encoding &lt;string&gt;</td>
<td>alias -actionscript-file-encoding<br />
<br />specifies actionscript file encoding. If there is no BOM in the AS3<br />
<br />source files, the compiler will use this file encoding.</td>
</tr>
<tr>
<td>-compiler.allow-source-path-overlap</td>
<td>alias -allow-source-path-overlap<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.as3</td>
<td>alias -as3<br />
<br />uses the AS3 compatibility mode. default is true. Either -as3 or -es3<br />
<br />must be &#8216;true&#8217;.</td>
</tr>
<tr>
<td>-compiler.context-root &lt;context-path&gt;</td>
<td>alias -context-root<br />
<br />path to replace {context.root} tokens for service channel endpoints</td>
</tr>
<tr>
<td>-compiler.debug</td>
<td>alias -debug</td>
</tr>
<tr>
<td>-compiler.defaults-css-url &lt;string&gt;</td>
<td>alias -defaults-css-url<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.doc</td>
<td>alias -doc<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.es3</td>
<td>alias -es3<br />
<br />uses the ES3 compatibility mode. default is false.</td>
</tr>
<tr>
<td>-compiler.external-library-path [path-element] [...]</td>
<td>alias -el<br />
<br />list of SWC files or directories to compile against but to omit from<br />
<br />linking (repeatable)</td>
</tr>
<tr>
<td>-compiler.fonts.languages.language-range &lt;lang&gt; &lt;range&gt;</td>
<td>alias -language-range<br />
<br />a range to restrict the number of font glyphs embedded into the SWF<br />
<br />(advanced, repeatable)</td>
</tr>
<tr>
<td>-compiler.fonts.managers [manager-class] [...]</td>
<td>alias -managers<br />
<br />Compiler font manager classes, in policy resolution order (advanced)</td>
</tr>
<tr>
<td>-compiler.fonts.max-cached-fonts &lt;string&gt;</td>
<td>alias -max-cached-fonts<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.fonts.max-glyphs-per-face &lt;string&gt;</td>
<td>alias -max-glyphs-per-face<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.fonts.system-search-path [path-element] [...]</td>
<td>alias -system-search-path<br />
<br /> (advanced, repeatable)</td>
</tr>
<tr>
<td>-compiler.headless-server</td>
<td>alias -headless-server<br />
<br />a flag to set when Flex is running on a server without a display<br />
<br />(advanced)</td>
</tr>
<tr>
<td>-compiler.include-libraries [library] [...]</td>
<td>alias -include-libraries<br />
<br />a list of libraries (SWCs) to completely include in the SWF<br />
<br />(repeatable)</td>
</tr>
<tr>
<td>-compiler.incremental</td>
<td>alias -incremental<br />
<br />enables incremental compilation</td>
</tr>
<tr>
<td>-compiler.keep-all-type-selectors</td>
<td>alias -keep-all-type-selectors<br />
<br />disables the pruning of unused type selectors (advanced)</td>
</tr>
<tr>
<td>-compiler.keep-generated-actionscript</td>
<td>alias -keep<br />
<br />save temporary source files generated during MXML compilation<br />
<br />(advanced)</td>
</tr>
<tr>
<td>-compiler.library-path [path-element] [...]</td>
<td>alias -l</p>
<p>list of SWC files or directories that contain SWC files (repeatable)</td>
</tr>
<tr>
<td>-compiler.locale &lt;string&gt;</td>
<td>alias -locale<br />
<br />specifies the locale for internationalization</td>
</tr>
<tr>
<td>-compiler.namespaces.namespace &lt;uri&gt; &lt;manifest&gt;</td>
<td>alias -namespace<br />
<br />Specify a URI to associate with a manifest of components for use as</p>
<p>MXML elements (repeatable)</td>
</tr>
<tr>
<td>-compiler.optimize</td>
<td>alias -optimize<br />
<br />Enable post-link SWF optimization</td>
</tr>
<tr>
<td>-compiler.profile</td>
<td>alias -profile<br />
<br />generate a movie that is suitable for performance profiling</td>
</tr>
<tr>
<td>-compiler.services &lt;filename&gt;</td>
<td>alias -services<br />
<br />path to Flex Data Services configuration file</td>
</tr>
<tr>
<td>-compiler.show-binding-warnings</td>
<td>alias -show-binding-warnings<br />
<br />toggle whether warnings generated from data binding code are<br />
<br />displayed</td>
</tr>
<tr>
<td>-compiler.show-coach-warnings</td>
<td>alias -show-coach-warnings<br />
<br />runs the AS3 compiler in a mode that detects legal but potentially<br />
<br />incorrect code</td>
</tr>
<tr>
<td>-compiler.show-dependency-warnings</td>
<td>alias -show-dependency-warnings<br />
<br />show warnings when dependencies cannot be determined at compile time<br />
<br />(advanced)</td>
</tr>
<tr>
<td>-compiler.show-deprecation-warnings</td>
<td>alias -show-deprecation-warnings<br />
<br />toggle whether the use of deprecated APIs generates a warning</td>
</tr>
<tr>
<td>-compiler.source-path [path-element] [...]</td>
<td>alias -sp</p>
<p>list of path elements that form the roots of ActionScript class<br />
<br />hierarchies (repeatable)</td>
</tr>
<tr>
<td>-compiler.strict</td>
<td>alias -strict<br />
<br />runs the AS3 compiler in strict error checking mode. strict must be<br />
<br />&#8216;false&#8217; when es3 is &#8216;true&#8217;.</td>
</tr>
<tr>
<td>-compiler.theme [filename] [...]</td>
<td>alias -theme<br />
<br />list of CSS or SWC files to apply as a theme (repeatable)</td>
</tr>
<tr>
<td>-compiler.use-resource-bundle-metadata</td>
<td>alias -use-resource-bundle-metadata</td>
</tr>
<tr>
<td>-compiler.verbose-stacktraces</td>
<td>alias -verbose-stacktraces<br />
<br />save callstack information to the SWF for debugging (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-array-tostring-changes</td>
<td>alias -warn-array-tostring-changes<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-assigning-undefined-to-non-object-type</td>
<td>alias -warn-assigning-undefined-to-non-object-type<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-bad-type-cast</td>
<td>alias -warn-bad-type-cast<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-bad-undefined-comparision</td>
<td>alias -warn-bad-undefined-comparision<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-boolean-constructor-with-no-args</td>
<td>alias -warn-boolean-constructor-with-no-args<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-class-is-sealed</td>
<td>alias -warn-class-is-sealed<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-constructor-returns-value</td>
<td>alias -warn-constructor-returns-value<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-deprecated-event-handler-error</td>
<td>alias -warn-deprecated-event-handler-error<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-deprecated-function-error</td>
<td>alias -warn-deprecated-function-error<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-deprecated-property-error</td>
<td>alias -warn-deprecated-property-error<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-duplicate-func-def</td>
<td>alias -warn-duplicate-func-def<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-for-var-in-changes</td>
<td>alias -warn-for-var-in-changes<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-function-parameter-declared-as-void</td>
<td>alias -warn-function-parameter-declared-as-void<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-math-expressions-treat-null-like-zero</td>
<td>alias -warn-math-expressions-treat-null-like-zero<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-missing-namespace-decl</td>
<td>alias -warn-missing-namespace-decl<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-no-constructor</td>
<td>alias -warn-no-constructor<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-no-explicit-super-call-in-constructor</td>
<td>alias -warn-no-explicit-super-call-in-constructor<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-no-type-decl</td>
<td>alias -warn-no-type-decl<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-scoping-change-in-this</td>
<td>alias -warn-scoping-change-in-this<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-super-only-works-for-class-objects</td>
<td>alias -warn-super-only-works-for-class-objects<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-undefined-function</td>
<td>alias -warn-undefined-function<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-undefined-reference</td>
<td>alias -warn-undefined-reference<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-var-hidden-by-function</td>
<td>alias -warn-var-hidden-by-function<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-wrong-arg-type</td>
<td>alias -warn-wrong-arg-type<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-wrong-number-of-args</td>
<td>alias -warn-wrong-number-of-args<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-compiler.warn-xml-class-has-changed</td>
<td>alias -warn-xml-class-has-changed<br />
<br /> (advanced)</td>
</tr>
<tr>
<td>-debug-password &lt;string&gt;</td>
<td>the password to include in debuggable SWFs (advanced)</td>
</tr>
<tr>
<td>-default-background-color &lt;int&gt;</td>
<td>default background color (may be overridden by the application code)<br />
<br />(advanced)</td>
</tr>
<tr>
<td>-default-frame-rate &lt;int&gt;</td>
<td>default frame rate to be used in the SWF. (advanced)</td>
</tr>
<tr>
<td>-default-script-limits &lt;max-recursion-depth&gt; &lt;max-execution-time&gt;</td>
<td>default script execution limits (may be overridden by root<br />
<br />attributes) (advanced)</td>
</tr>
<tr>
<td>-default-size &lt;width&gt; &lt;height&gt;</td>
<td>default application size (may be overridden by root attributes in the<br />
<br />application) (advanced)</td>
</tr>
<tr>
<td>-dump-config &lt;filename&gt;</td>
<td>write a file containing all currently set configuration values in a<br />
<br />format suitable for use as a flex config file (advanced)</td>
</tr>
<tr>
<td>-externs [symbol] [...]</td>
<td>a list of symbols to omit from linking when building a SWF (advanced,<br />
<br />repeatable)</td>
</tr>
<tr>
<td>-file-specs [path-element] [...]</td>
<td>a list of source files to compile, the last file specified will be<br />
<br />used as the target application (repeatable, default variable)</td>
</tr>
<tr>
<td>-frames.frame [label] [classname] [...]</td>
<td>alias -frame<br />
<br />A SWF frame label with a sequence of classnames that will be linked<br />
<br />onto the frame. (advanced, repeatable)</td>
</tr>
<tr>
<td>-help [keyword] [...]</td>
<td>keywords are &#8216;syntax&#8217;, &#8216;list&#8217;, &#8216;advanced&#8217;, &#8216;aliases&#8217;, &#8216;details&#8217;, or a<br />
<br />search term</td>
</tr>
<tr>
<td>-includes [symbol] [...]</td>
<td>a list of symbols to always link in when building a SWF (advanced,<br />
<br />repeatable)</td>
</tr>
<tr>
<td>-lazy-init</td>
<td>Enable/Disable ABC bytecode lazy initialization (advanced)</td>
</tr>
<tr>
<td>-licenses.license &lt;product&gt; &lt;serial-number&gt;</td>
<td>alias -license<br />
<br /> (repeatable)</td>
</tr>
<tr>
<td>-link-report &lt;filename&gt;</td>
<td>Output a XML-formatted report of all definitions linked into the<br />
<br />application. (advanced)</td>
</tr>
<tr>
<td>-load-config &lt;filename&gt;</td>
<td>load a file containing configuration options (repeatable)</td>
</tr>
<tr>
<td>-load-externs &lt;filename&gt;</td>
<td>an XML file containing &lt;def&gt;, &lt;pre&gt;, and &lt;ext&gt; symbols to omit from<br />
<br />linking when building a SWF (advanced, repeatable)</td>
</tr>
<tr>
<td>-metadata.contributor &lt;name&gt;</td>
<td>alias -contributor<br />
<br />A contributor&#8217;s name to store in the SWF metadata (repeatable)</td>
</tr>
<tr>
<td>-metadata.creator &lt;name&gt;</td>
<td>alias -creator<br />
<br />A creator&#8217;s name to store in the SWF metadata (repeatable)</td>
</tr>
<tr>
<td>-metadata.date &lt;text&gt;</td>
<td>alias -date<br />
<br />The creation date to store in the SWF metadata</td>
</tr>
<tr>
<td>-metadata.description &lt;text&gt;</td>
<td>alias -description<br />
<br />The default description to store in the SWF metadata</td>
</tr>
<tr>
<td>-metadata.language &lt;code&gt;</td>
<td>alias -language<br />
<br />The language to store in the SWF metadata (i.e. EN, FR) (repeatable)</td>
</tr>
<tr>
<td>-metadata.localized-description &lt;text&gt; &lt;lang&gt;</td>
<td>alias -localized-description<br />
<br />A localized RDF/XMP description to store in the SWF metadata<br />
<br />(repeatable)</td>
</tr>
<tr>
<td>-metadata.localized-title &lt;title&gt; &lt;lang&gt;</td>
<td>alias -localized-title<br />
<br />A localized RDF/XMP title to store in the SWF metadata (repeatable)</td>
</tr>
<tr>
<td>-metadata.publisher &lt;name&gt;</td>
<td>alias -publisher<br />
<br />A publisher&#8217;s name to store in the SWF metadata (repeatable)</td>
</tr>
<tr>
<td>-metadata.title &lt;text&gt;</td>
<td>alias -title<br />
<br />The default title to store in the SWF metadata</td>
</tr>
<tr>
<td>-output &lt;filename&gt;</td>
<td>alias -o<br />
<br />the filename of the SWF movie to create</td>
</tr>
<tr>
<td>-raw-metadata &lt;text&gt;</td>
<td>XML text to store in the SWF metadata (overrides metadata.*<br />
<br />configuration) (advanced)</td>
</tr>
<tr>
<td>-resource-bundle-list &lt;filename&gt;</td>
<td> (advanced)</td>
</tr>
<tr>
<td>-runtime-shared-libraries [url] [...]</td>
<td>alias -rsl<br />
<br />a list of runtime shared library URLs to be loaded before the<br />
<br />application starts (repeatable)</td>
</tr>
<tr>
<td>-use-network</td>
<td>toggle whether the SWF is flagged for access to network resources</td>
</tr>
<tr>
<td>-version</td>
<td>display the build version of the program</td>
</tr>
<tr>
<td>-warnings</td>
<td>toggle the display of warnings</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2009/07/note-to-self-mxmlc-compiler-arguments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standardizing runtime asset loads (incl. Runtime fonts!).</title>
		<link>http://ahatch.com/log/2009/07/standardizing-runtime-asset-loads-incl-runtime-fonts/</link>
		<comments>http://ahatch.com/log/2009/07/standardizing-runtime-asset-loads-incl-runtime-fonts/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:50:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[asset]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[runtime]]></category>
		<category><![CDATA[swf]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=566</guid>
		<description><![CDATA[I&#8217;ve been looking for better ways to reduce the size of my main app swfs. Loading assets at runtime has proven to be a flexible solution that saves size in the initial load and throughout the use of the app, as only files essential to the current view can be loaded in. I found myself [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking for better ways to reduce the size of my main app swfs.  Loading assets at runtime has proven to be a flexible solution that saves size in the initial load and throughout the use of the app, as only files essential to the current view can be loaded in.  I found myself repeating code a lot for the runtime load process, so I&#8217;m working on a way to standardize getting external assets into my Flash app.  </p>
<p>Check out my <a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/classes/com/hatch/utils/RuntimeLibraryItem.as">RuntimeLibraryItem class</a>. This abstract class can be easily extended or instantiated for different types of external assets or just individual items.</p>
<p><em>For example:</em><br />
Externalizing my fonts saves huge weight up front, but loading and registering them can be a bit confusing and tedious. My <a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/classes/com/hatch/utils/RuntimeFont.as">RuntimeFont</a> class is an extension of the <a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/classes/com/hatch/utils/RuntimeLibraryItem.as">RuntimeLibraryItem</a> class and streamlines the external font loading process.</p>
<p>I&#8217;ve started to build a library of font swfs for each project by generating a swf for each font with a single exported font library item.  So, LucidaGrandeRegular.swf would contain the exported font symbol, &#8216;LucidaGrandeRegular&#8217;.  The class LucidaGrandeRegular.as would then look like this:
<pre>
public class LucidaGrandeRegular extends RuntimeFont
{
        public function LucidaGrandeRegular(autoLoad:Boolean = false)
        {
		var url:String = 'path/to/LucidaGrandeRegular.swf';
		super('LucidaGrandeRegular', url, autoLoad);
	}
}</pre>
<p><a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/classes/com/hatch/utils/RuntimeFont.as">RuntimeFont</a> takes over from there:
<pre>
public class RuntimeFont extends RuntimeLibraryItem
{
        public static var library:Array = new Array();

        private var _name:String;

        public function RuntimeFont(name:String, url:String, autoLoad:Boolean = false)
        {
                _name = name;        // save the name of the font to be registered
                super(url, autoLoad); // RuntimeLibraryItem class loads the swf
                library.push(this);     // store this in a static var of runtime fonts
        }

        private function registerFont():void
        {
                // registers with the Font class for use in the application
                Font.registerFont( getClass(this.name) as Class );
        }

        override protected function handleLoadComplete(event:Event):void
        {
                this.registerFont();  // register the font when the swf loads
                super.handleLoadComplete(event);
        }

        public function get name():String
        {
                // utility getter for whatever
                return _name;
        }

}
</pre>
<p>This turns the font load for LucidaGrandeRegular into something as simple as</p>
<pre>var lg:LucidaGrandeRegular = new LucidaGrandeRegular();
lg.addEventListener(RuntimeClassLibrary.LOAD_COMPLETE, handleFontsLoaded);
lg.load();</pre>
<p>This is still evolving, but I&#8217;ll post sample code <a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/#AS3/examples/runtime_fonts">in the examples directory</a> soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2009/07/standardizing-runtime-asset-loads-incl-runtime-fonts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A quick note on document.location.href</title>
		<link>http://ahatch.com/log/2009/07/a-quick-note-on/</link>
		<comments>http://ahatch.com/log/2009/07/a-quick-note-on/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 15:58:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[external]]></category>
		<category><![CDATA[external interface]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[parent]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://ahatch.com/log/?p=556</guid>
		<description><![CDATA[Added this to my NetUtil class for easy access to an embedded swf&#8217;s parent url. public static function get parentUrl():String { if(ExternalInterface.available) { try { var parent:String = String( ExternalInterface.call(" function(){ return document.location.href.toString();}")); return parent; } catch(error:Error){} catch (error:SecurityError){} } return ''; } Just be sure you have AllowScriptAccess set to &#8220;always&#8221; in your embed [...]]]></description>
			<content:encoded><![CDATA[<p>Added this to my <a href="http://code.google.com/p/ahatch/source/browse/trunk/AS3/classes/com/hatch/utils/NetUtil.as">NetUtil class</a> for easy access to an embedded swf&#8217;s parent url. </p>
<p><code><br />
public static function get parentUrl():String<br />
{<br />
	if(ExternalInterface.available)<br />
	{<br />
		try<br />
		{<br />
			var parent:String = String( ExternalInterface.call(" function(){ return document.location.href.toString();}"));<br />
			return parent;<br />
		}<br />
			catch(error:Error){}<br />
			catch (error:SecurityError){}<br />
	}<br />
	return '';<br />
}<br />
</code></p>
<p>Just be sure you have AllowScriptAccess set to &#8220;always&#8221; in your embed params or else a Security Error will be thrown by the player.</p>
]]></content:encoded>
			<wfw:commentRss>http://ahatch.com/log/2009/07/a-quick-note-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
