<?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>Dynamic Flash</title>
	<atom:link href="http://dynamicflash.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dynamicflash.com</link>
	<description>Confessions of a serial code abuser</description>
	<pubDate>Wed, 03 Dec 2008 16:55:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Upgrading your app to AIR 1.5</title>
		<link>http://dynamicflash.com/2008/11/upgrading-your-app-to-air-15/</link>
		<comments>http://dynamicflash.com/2008/11/upgrading-your-app-to-air-15/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 12:48:26 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[Adobe AIR]]></category>

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

		<category><![CDATA[Flex 3]]></category>

		<guid isPermaLink="false">http://dynamicflash.com/?p=239</guid>
		<description><![CDATA[In attempting to upgrade the AirShows application to use the new AIR 1.5 runtime, I tried to simply change the target SDK to Flex  3.2 in the project settings. However, this was giving me all sorts of strange errors, from not launching to displaying the following error dialog when trying to launch the application [...]]]></description>
			<content:encoded><![CDATA[<p>In attempting to upgrade the <a href="http://github.com/spjwebster/airshows">AirShows</a> application to use the new <a href="http://www.adobe.com/devnet/logged_in/rchristensen_lpolanco_air_1.5.html">AIR 1.5</a> runtime, I tried to simply change the target SDK to Flex  3.2 in the project settings. However, this was giving me all sorts of strange errors, from not launching to displaying the following error dialog when trying to launch the application in debug mode:</p>

<p><img src="/images/fb-air-15-error.png" alt="Flex Builder 3 - Air 1.5 Error Message" /></p>

<p>On a hunch, I checked the application configuration file <code>AirShows-app.xml</code> file and noticed that it uses the following namespace declaration:</p>

<pre><code>&lt;application xmlns="http://ns.adobe.com/air/application/1.0"&gt;
</code></pre>

<p>Since the Flex 3.2 SDK actually expects to be building AIR 1.5 applications, I had a feeling that this was the root cause of my problem. A quick change in the namespace to the following solved my problem:</p>

<pre><code>&lt;application xmlns="http://ns.adobe.com/air/application/1.5"&gt;
</code></pre>

<p>Thankfully I didn&#8217;t waste a whole lot of time trying to figure this out, but I do wish Adobe had provided slightly more useful error messages.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/11/upgrading-your-app-to-air-15/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Motivate yourself by doing it in public</title>
		<link>http://dynamicflash.com/2008/11/do-it-in-public/</link>
		<comments>http://dynamicflash.com/2008/11/do-it-in-public/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 23:21:17 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=234</guid>
		<description><![CDATA[Productivity and motivation are strange and often elusive things when it comes to your personal projects. You start a project with the best of intentions, have a hyper-productive 2 to 3 day burst right at the start, and then get distracted by some new shiny project. You convince yourself that these projects have been postponed [...]]]></description>
			<content:encoded><![CDATA[<p>Productivity and motivation are strange and often elusive things when it comes to your personal projects. You start a project with the best of intentions, have a hyper-productive 2 to 3 day burst right at the start, and then get distracted by some new shiny project. You convince yourself that these projects have been postponed rather than abandoned, but your subconscious knows that they will never see the light of day. Your <code>projects</code> directory becomes a haven for rotting, neglected and increasingly obsolete code that will eventually be lost or deleted.</p>

<p>This is a situation I had accepted as a normal part of being a developer, right up until a week ago when a number colleagues past and present started to upload their personal projects to <a href="http://github.com">GitHub</a>. GitHub is an online code hosting service that integrates with <a href="http://git.or.cz/">Git</a>, a distributed version control system originally written by Linus Torvalds.</p>

<p>Code hosting services have been around for a while, and big hitters like <a href="http://sourceforge.com">SourceForge</a> and <a href="http://code.google.com">Google Code</a> have done wonders for open source projects. However, GitHub has one important feature that makes it <em>so</em> much more useful than the more established project hosting sites: a social graph. The ability to join a network of friends and automatically see when they&#8217;re updating their projects (or adding new ones), to watch or fork those projects for my own ends, gives me the impetus to keep my own projects moving a long.</p>

<p>Right now I only have two projects on GitHub: <a href="http://github.com/spjwebster/as3base64">as3base64</a> (which was released a few years ago on this site) and <a href="http://github.com/spjwebster/airshows">AirShows</a>. AirShows is a Adobe AIR-based GUI for editing the configuration file for <a href="http://pytvshows.sourceforge.net/">pytvshows</a>. It&#8217;s far from finished, and the code is really quite ugly, but the very fact that it&#8217;s now out in the open where my friends can see when I&#8217;m working on it (and when I&#8217;m not) means that I feel I&#8217;m more likely to keep up development.</p>

<p>If Git doesn&#8217;t suit your style you don&#8217;t have to use GitHub; there are plenty of other code hosting services that offer similar features, such as <a href="http://launchpad.net">LaunchPad</a> (<a href="http://bazaar-vcs.org/">Bazaar</a>) and <a href="http://www.bitbucket.org/">BitBucket</a> (<a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a>). The important thing is that you chose the one that most of your friends are actively using, otherwise you&#8217;ll lose out on the very feature that makes these sites so useful for productivity.</p>

<h3>A word about licensing</h3>

<p>If you&#8217;re going to go to the effort of making your projects public, you might as well make them as useful as possible. A lot of developers have heard of the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</a> and often use it for their projects. However, this license requires that the source code for all changes made to your code by third parties <em>must</em> be made available to the public. This means that businesses are often wary of using code licensed under the GPL as part of a project.</p>

<p>All the code I release publicly is licensed under the more liberal <a href="http://www.opensource.org/licenses/mit-license.php">MIT License</a>. This license grants developers the freedom to use the code in any way they choose without restriction, so long as the copyright notice remains in the source code. The <a href="">BSD License</a> is similarly liberal. I urge you to choose one of these two licenses for the code you make available, or at least make sure you understand the implications of the license you end up choosing.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/11/do-it-in-public/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The trouble with Flash and REST</title>
		<link>http://dynamicflash.com/2008/11/the-trouble-with-flash-and-rest/</link>
		<comments>http://dynamicflash.com/2008/11/the-trouble-with-flash-and-rest/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 01:06:51 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[Flash]]></category>

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

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

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

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

		<category><![CDATA[representational state transfer]]></category>

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

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=200</guid>
		<description><![CDATA[I find it shocking that the Flash Player still lacks the ability to properly interact with RESTful web services. I keep running into this issue, and every time I scour the Internet hoping that someone, somewhere has found a solution. Every time I return disappointed, hating the Flash Player just a little bit more.

REST stands [...]]]></description>
			<content:encoded><![CDATA[<p>I find it shocking that the Flash Player <em>still</em> lacks the ability to properly interact with RESTful web services. I keep running into this issue, and every time I scour the Internet hoping that someone, somewhere has found a solution. Every time I return disappointed, hating the Flash Player just a little bit more.</p>

<p>REST stands for <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REpresentational State Transfer</a>, and describes a technique to organise a web service into resources that can be uniquely identified by a URI. The actions that can be performed on that resource map directly to the standard HTTP methods: <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code>, <code>HEAD</code> and <code>OPTIONS</code>. With properly organised resources it???s possible to do virtually everything you can do with an RPC-style web service with REST. The benefit of REST is that it goes <em>with</em> the grain of the web, not against it.</p>

<p>The problem with the Flash Player is that the <a href="http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html"><code>URLRequest</code> class</a>, which is the basis for all HTTP requests, only supports <code>GET</code> and <code>POST</code> operations<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup>. This is due to a limitation in the <a href="http://en.wikipedia.org/wiki/NPAPI">NPAPI pseudo-standard</a> used by non-IE browsers that only exposes the ability to make GET and POST requests. Unless NPAPI is updated to allow other HTTP methods, and browser vendors and plugin authors update their implementations to match that new API, we need to find other ways of interacting with RESTful web services.</p>

<p>Now, If you???re lucky, the web service you???re trying to interact with will support some way of overriding the request method, such as a <code>X-HTTP-Method-Override</code> header. If this is the case, you can use the <code>requestHeaders</code> property of your <code>URLRequest</code> object to set the appropriate method:</p>


<div class="wp_syntax"><div class="code"><pre class="actionscript actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// Create request object with appropriate resource URL</span>
<span style="color: #000000; font-weight: bold;">var</span> req:URLRequest = <span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'http://rest.example.com/v1/book/1234'</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Use POST because DELETE is non-idempotent</span>
req.<span style="color: #006600;">method</span> = URLRequestMethod.<span style="color: #006600;">POST</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Specify DELETE method in X-HTTP-Method-Override header</span>
req.<span style="color: #006600;">requestHeaders</span> = <span style="color: #66cc66;">&#91;</span> <span style="color: #000000; font-weight: bold;">new</span> URLRequestHeader<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'X-HTTP-Method-Override'</span>, <span style="color: #ff0000;">'DELETE'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#93;</span>;</pre></div></div>


<p>If your web service isn???t quite so forgiving, the only option you have is to use the <a href="http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html"><code>ExternalInferface</code> class</a> and some JavaScript magic to make requests on behalf of your Flash project and send the response back. It???s an ugly hack, but a developer???s gotta do what a developer???s gotta do. If you???re interested in this workaround, leave a comment and I???ll knock up a simple example.</p>

<p>For what it???s worth, <a href="http://wilcob.com/wilco/News/http-requests-in-silverlight.aspx">Silverlight fares no better</a> in this regard. This is not surprising since Microsoft are stuck with the same browser plug-in APIs as Adobe, but that doesn???t make it any less annoying for developers on both sides of the fence.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>If you???re building Adobe AIR applications, you actually have access to the full gamut of HTTP request methods. See the <a href="http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequestMethod.html"><code>URLRequestMethod</code> documentation</a> for more information.&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/11/the-trouble-with-flash-and-rest/feed/</wfw:commentRss>
		</item>
		<item>
		<title>And we&#8217;re back</title>
		<link>http://dynamicflash.com/2008/11/and-were-back/</link>
		<comments>http://dynamicflash.com/2008/11/and-were-back/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 01:06:13 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[General]]></category>

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=226</guid>
		<description><![CDATA[Dynamic Flash had a bit of an outage there, but I think we&#8217;re all good now. The DNS and web servers at my old company (who were kindly still hosting this site) stopped responding around mid-afternoon UK time today, and I&#8217;ve been scrambling to get the site back up since about two hours ago when [...]]]></description>
			<content:encoded><![CDATA[<p>Dynamic Flash had a bit of an outage there, but I think we&#8217;re all good now. The DNS and web servers at my old company (who were kindly still hosting this site) stopped responding around mid-afternoon UK time today, and I&#8217;ve been scrambling to get the site back up since about two hours ago when I realised that this appears to be a permanent issue.</p>

<p>In record time, i&#8217;ve managed to acquire new hosting, repoint the domain, set up wordpress, restore the blog database backup that I took first thing this morning, upload all the example files from a backup I did way back in April, fix an issue with the theme, and finally write this blog post. Phew!</p>

<p>There&#8217;s a good chance that I&#8217;ve missed more than a few things whilst doing this, so please let me know if the comments if you find something on the site that&#8217;s not working as it should.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/11/and-were-back/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Slides and example code from &#60;head&#62; &#8216;08</title>
		<link>http://dynamicflash.com/2008/10/slides-and-example-code-from-head-08/</link>
		<comments>http://dynamicflash.com/2008/10/slides-and-example-code-from-head-08/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 12:13:50 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://dynamicflash.com/?p=196</guid>
		<description><![CDATA[

The slides and example code from my Beg, Borrow or Steal: The Art of Flashing Without Flashing session at &#60;head&#62; &#8216;08 are now available for viewing/download from the My Talks section.

See &#60;head&#62; over heels for a full conference write-up.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.headconference.com/"><img src="http://www.headconference.com/images/buttons/button_468x60.gif" width="468" height="60" alt="&lt;head&gt; web conference: October 24-26, 2008"/></a></p>

<p>The slides and example code from my <a href="/my-talks#head08">Beg, Borrow or Steal: The Art of Flashing Without Flashing</a> session at <a href="http://headconference.com">&lt;head&gt; &#8216;08</a> are now available for viewing/download from the <a href="/my-talks">My Talks section</a>.</p>

<p>See <a href="/2008/10/headover-heels/">&lt;head&gt; over heels</a> for a full conference write-up.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/10/slides-and-example-code-from-head-08/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#60;head&#62; over heels</title>
		<link>http://dynamicflash.com/2008/10/headover-heels/</link>
		<comments>http://dynamicflash.com/2008/10/headover-heels/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 01:11:30 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=178</guid>
		<description><![CDATA[So, &#60;head&#62; 2008 is over, and it was nothing short of amazing. Sure, there were a few technical issues, but that&#8217;s inevitable when you&#8217;re bringing together 70+ speakers and over 2000 attendees from all over the world into one virtual online space for 3 days of fun and learning.

I was fortunate enough to take part [...]]]></description>
			<content:encoded><![CDATA[<p>So, <a href="http://headconference.com">&lt;head&gt; 2008</a> is over, and it was nothing short of amazing. Sure, there were a few technical issues, but that&#8217;s inevitable when you&#8217;re bringing together <a href="http://headconference.com/speakers">70+ speakers</a> and over 2000 attendees from all over the world into one virtual online space for 3 days of fun and learning.</p>

<p>I was fortunate enough to take part in two sessions at the conference. The first was a &#8220;State of Flash&#8221; conversation live on stage at the London Hub with <a href="http://carlosulloa.com">Carlos Ulloa</a> and <a href="http://sebleedelisle.com">Seb Lee-Delisle</a>, and with <a href="http://aralbalkan.com">Aral Balkan</a> guest-starring as moderator. This was my first time on stage at a proper conference, and I think the conversation format and sharing the stage with 3 Flash luminaries, not to mention the large Yahoo contingent in the audience, really helped to ease whatever pre-session nerves I had.</p>

<p>We covered a whole bunch of Flash related topics, from what excites us in the Flash world to discussion of <a href="http://number27.org/beyondflash.html">Johnathan Harris&#8217;s controversial statements</a> made during the closing keynote at Flash on the Beach &#8216;08. Based on the questions and feedback afterwards, it seems this session went down pretty well.</p>

<p><div class="wp-caption alignnone" style="width: 510px"><a href="http://www.flickr.com/photos/bru/2970717795/"><img alt="Steve Webser, Carlos Ulloa and Seb Lee-Delisle in conversation on stage at head (Photo: bru76)" src="http://farm4.static.flickr.com/3061/2970717795_4a9ed7e75e.jpg?v=0" title="State of Flash conversation at head" width="500" height="332" /></a><p class="wp-caption-text">Steve Webser, Carlos Ulloa and Seb Lee-Delisle at &lt;head&gt; (via bru76)</p></div></p>

<p>The second session, entitled <a href="http://dynamicflash.com/my-talks/#head08">Beg, Borrow or Steal: The Art of Flashing Without Flashing</a>, was presented virtually from the comfort of my own living room on Sunday evening. The basic idea was to show that you can steal advanced features from the Flash Player in your standards-based sites and applications that you would otherwise have to wait until HTML5 is fully supported to use. Every time I practiced this before the day the session came in at around the 25 minute mark. Somehow, on the day, I managed to tak up 40 of my allotted 45 minutes with the slides and examples, which only left 5 minutes for Q&amp;A. Oops.</p>

<p>Anyway, the slides and example files from the second session are <a href="http://dynamicflash.com/my-talks/#head08">available to download</a> from the <a href="http://dynamicflash.com">My Talks</a> section of this site. Eventually there will be videos of both sessions available through the &lt;head&gt; website, though for the first 6 months they are exclusive to attendees of the conference. I&#8217;ll post a follow-up once the videos are generally available.</p>

<p>A massive thank-you goes out to Aral and the rest of the &lt;head&gt; team for putting together such an awesome and groundbreaking conference. Friday&#8217;s sessions and the general geek gathering at the London hub were, in my opinion, worth the admission price alone, and being able to watch the remainder of the conference in my pajamas was quite an experience. One thing&#8217;s for sure: &lt;head&gt; &#8216;09 has a lot to live up to.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/10/headover-heels/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#60;head&#62; starts today - get a FREE ticket</title>
		<link>http://dynamicflash.com/2008/10/head-starts-today-free-ticket/</link>
		<comments>http://dynamicflash.com/2008/10/head-starts-today-free-ticket/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 10:04:18 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[Flash]]></category>

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

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=174</guid>
		<description><![CDATA[&#60;head&#62; kicks off today, and I&#8217;ve got 13 free tickets to give away. Simply leave a comment (not forgetting to fill in your email address) and I&#8217;ll send a ticket to the first 13 people to respond.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://headconference.com">&lt;head&gt;</a> kicks off today, and I&#8217;ve got 13 free tickets to give away. Simply leave a comment (not forgetting to fill in your email address) and I&#8217;ll send a ticket to the first 13 people to respond.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/10/head-starts-today-free-ticket/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Come see me speak at &#60;head&#62;</title>
		<link>http://dynamicflash.com/2008/10/come-see-me-at-head/</link>
		<comments>http://dynamicflash.com/2008/10/come-see-me-at-head/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 16:10:31 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[Flash]]></category>

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

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=165</guid>
		<description><![CDATA[

&#60;head&#62; starts in just under 48 hours time. I am taking part in a &#8217;state of Flash&#8217; roundtable discussion with Seb Lee-Delisle and Carlos Ulloa live on stage at the London hub (Friday at 17:10 BST). Other speakers at the London hub include: Tim O?Reilly, Richard Moross, Jeremy Keith, Paul Boag, Simon Willison, Chris Heilmann, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.headconference.com/"><img src="http://www.headconference.com/images/buttons/button_468x60.gif" width="468" height="60" alt="&lt;head&gt; web conference: October 24-26, 2008"/></a></p>

<p><a href="http://headconference.com">&lt;head&gt;</a> starts in just under 48 hours time. I am taking part in a &#8217;state of Flash&#8217; roundtable discussion with <a href="http://sebleedelisle.com">Seb Lee-Delisle</a> and <a href="http://carlosulloa.com">Carlos Ulloa</a> live on stage at the London hub (Friday at 17:10 BST). Other speakers at the London hub include: <a href="http://www.headconference.com/speakers/tim-oreilly">Tim O?Reilly</a>, <a href="http://www.headconference.com/speakers/richard-moross">Richard Moross</a>, <a href="http://www.headconference.com/speakers/jeremy-keith/">Jeremy Keith</a>, <a href="http://www.headconference.com/speakers/paul-boag">Paul Boag</a>, <a href="http://www.headconference.com/speakers/simon-willison">Simon Willison</a>, <a href="http://www.headconference.com/speakers/christian-heilmann">Chris Heilmann</a>, <a href="http://www.headconference.com/speakers/stephanie-troeth">Stephanie Troeth</a>, <a href="http://www.headconference.com/speakers/ann-mcmeekin">Ann McMeekin</a>, <a href="http://www.headconference.com/speakers/gavin-starks">Gavin Starks</a>, <a href="http://www.headconference.com/speakers/gavin-bell">Gavin Bell</a>, and <a href="http://www.headconference.com/speakers/simon-wardley">Simon Wardley</a>.</p>

<p><strong>If you want to attend any of the local hubs (expecially the London hub) you&#8217;ll need to reserve a place as there is limited seating</strong>. If you have your ticket, head on over to the <a href="http://www.headconference.com/hubs/">Local Conference Hubs</a> page, sign-in, select your hub and click the link to reserve your place. Don&#8217;t forget to print your ticket and bring it along with you on the day.</p>

<p>I&#8217;m also giving a virtual session in Room 3 on Sunday at 19:00 BST entitled &#8216;Beg, Borrow or Steal: The Art of Flashing Without Flashing&#8217;. Here&#8217;s the session description:</p>

<blockquote>
HTML5 is awesome. Well, it will be awesome <a href="http://ishtml5readyyet.com/">when it&#8217;s finally ready</a>. Probably.

The bad news is that by the time the W3C have finished monkeying with HTML5, I&#8217;ll probably have given up on the web as a whole and taken up <a href="http://www.amazon.co.uk/Raising-Meat-Goats-Profit-Bowman/dp/0967038103">meat goat farming</a>.

The good news (for you, me and the goats) is that there&#8217;s no need to wait for a lot of the functionality that HTML5 promises; we can start using them right now. In this session I&#8217;m going to show you how you can steal these features from the Flash Player and use them in your standards-based sites or applications, without even a sniff of Flash on the page.
</blockquote>

<p>See you at &lt;head&gt;.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/10/come-see-me-at-head/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FotB &#8216;08 Schedule: iCal feeds</title>
		<link>http://dynamicflash.com/2008/09/fotb-08-schedule-ical-feeds/</link>
		<comments>http://dynamicflash.com/2008/09/fotb-08-schedule-ical-feeds/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 18:14:18 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[Flash]]></category>

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

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

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

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=161</guid>
		<description><![CDATA[In preparation for the start of Flash on the Beach &#8216;08 tomorrow, I have taken the schedule information and concerted it into a number of iCal feeds for your consumption. The events include locations, links and session sescriptions.


Subscribe to FotB 08 Schedule: Concert hall
Subscribe to FotB 08 Schedule: Corn Exchange
Subscribe to FotB 08 Schedule: Pavilion [...]]]></description>
			<content:encoded><![CDATA[<p>In preparation for the start of Flash on the Beach &#8216;08 tomorrow, I have taken the <a href="http://flashonthebeach.com/schedule/">schedule information</a> and concerted it into a number of iCal feeds for your consumption. The events include locations, links and session sescriptions.</p>

<ul>
<li><a href="webcal://icalexchange.com/public/spjwebster/FotB%2008:%20Concert%20Hall.ics">Subscribe to FotB 08 Schedule: Concert hall</a></li>
<li><a href="webcal://icalexchange.com/public/spjwebster/FotB%2008:%20Corn%20Exchange.ics">Subscribe to FotB 08 Schedule: Corn Exchange</a></li>
<li><a href="webcal://icalexchange.com/public/spjwebster/FotB%2008:%20Pavilion%20Theatre.ics">Subscribe to FotB 08 Schedule: Pavilion Theatre</a></li>
<li><a href="webcal://icalexchange.com/public/spjwebster/Flash%20on%20the%20Beach%2008%20Schedule.ics">Subscribe to FotB 08 Schedule: All Venues</a></li>
</ul>

<p><del>Note that I&#8217;ve made an educated guess at which sessions will be in which venues based on previous year&#8217;s schedules.</del> I have now confirmed the session venues with the official schedule. I will try to keep these up to date with any movements and changes as the conference progresses.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/09/fotb-08-schedule-ical-feeds/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Read and write local files with Flash Player 10</title>
		<link>http://dynamicflash.com/2008/07/flash-player-10-local-file-access/</link>
		<comments>http://dynamicflash.com/2008/07/flash-player-10-local-file-access/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 11:16:38 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

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

		<category><![CDATA[Flex 3]]></category>

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

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

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

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

		<guid isPermaLink="false">http://dynamicflash.com/?p=160</guid>
		<description><![CDATA[
This text is slightly out of date for the release version of Flash Player 10. The data for local files isn&#8217;t available in the OPEN event, and you&#8217;ll need to wait for the subsequent COMPLETE event to fire before you can read the data.
I have updated the FlexPad example application and it&#8217;s source code, and [...]]]></description>
			<content:encoded><![CDATA[<div class="important">
<p>This text is slightly out of date for the release version of Flash Player 10. The data for local files isn&#8217;t available in the OPEN event, and you&#8217;ll need to wait for the subsequent COMPLETE event to fire before you can read the data.</p>
<p>I have updated the <a href="http://dynamicflash.com/downloads/astro/flexpad">FlexPad</a> example application and it&#8217;s <a href="http://dynamicflash.com/downloads/astro/flexpad/srcview/">source code</a>, and I&#8217;ll update the article here shortly.</p>
</div>

<p>One of the features that I&#8217;m most looking forward to in <a href="http://labs.adobe.com/technologies/flashplayer10/">Flash Player 10</a> (codenamed Astro) is local file access. Once the pipe dream of web application developers the world over, the next version of the Flash Player will allow you to read from and write to local files using a simple ActionScript interface.</p>

<p>This is all implemented with a few simple additions to the <code>FileReference</code> class. Reading the content of a file is accomplished with the <code>FileReference.open()</code> method, which can be called once the user has selected a file using the browse dialog. Like most things in the Flash world file loading happens asynchronously, so you&#8217;ll have to listen out for the <code>Event.OPEN</code> event. Once the file has loaded, the file content is available as a <code>ByteArray</code> object through the <code>FileReference.data</code> property to do with as you please.</p>

<p><pre lang="actionscript">
package com.dynamicflash.examples {</p>

<p>public class LocalFileAccessExample {</p>

<pre><code>public function LocalFileAccessExample():void {
  var fileRef = new FileReference();
  fileRef.addEventListener( Event.SELECT, onFileSelect );
  fileRef.addEventListener( Event.OPEN, onFileOpen );
  fileRef.browse();
}

private function onFileSelect( event:Event ):void {
  var fileRef:FileReference = event.target as FileReference;
  fileRef.open();
}

private function onFileOpen( event:Event ):void {
  var fileRef:FileReference = event.target as FileReference;
  var data:ByteArray = fileRef.data as ByteArray;
}
</code></pre>

<p>}
}
</pre></p>

<p>Saving data to a local file is as simple as calling the new <code>FileReference.save()</code> method and passing the data you want written to the file and the filename as parameters. As data you can pass either a String or a ByteArray object.</p>

<p><pre lang="actionscript">
fileRef:FileReference = new FileReference();
fileRef.save( 'Here is some text', 'some.txt');
</pre></p>

<p>In order to make sure that nefarious Internet denizens can&#8217;t mess with a user&#8217;s files without a their knowledge, the Flash Player pops up a native operating system save dialog every time you try to write data to a file. </p>

<p><img src="http://dynamicflash.com/images/astro-file-save-dialog.png" alt="Astro's file save dialog" title="" /></p>

<p>Consequently the filename you pass to <code>FileReference.save()</code> is little more than a suggestion to the user, and the default directory for the saved file seems to be the last save directory, rather than the directory the file was loaded from. I think this is a decent trade-off between functionality and security, even if it means that saving data to local files requires a little more effort on the user&#8217;s part than with traditional desktop applications.</p>

<p><strong>Note</strong>: There is currently a bug in the latest beta of Flash Player 10 where any attempt to overwrite an existing file will result in that file being truncated to zero bytes, rather than being filled with the data you specified. This is a known issue, and you can <a href="https://bugs.adobe.com/jira/browse/FP-276">track the bug</a> over at Adobe&#8217;s issue tracker.</p>

<p>To illustrate this new feature, I&#8217;ve knocked up a simple application (including source code) that I&#8217;m somewhat unimaginatively calling <a href="http://dynamicflash.com/downloads/astro/flexpad">FlexPad</a> for you to play around with.</p>

<p>If you want to build your own projects that make use any of the new features in Flash Player 10, you&#8217;ll need to grab a recent stable copy of the Flex SDK. See <a href="http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x">Targeting Flash Player 10 Beta with Flex SDK 3.0.x</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicflash.com/2008/07/flash-player-10-local-file-access/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
