<?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>arnimaack.com</title>
	<atom:link href="http://www.arnimaack.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.arnimaack.com</link>
	<description></description>
	<lastBuildDate>Mon, 16 Apr 2012 22:48:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The Right Mix (EventTech Conference Presentation)</title>
		<link>http://www.arnimaack.com/2011/12/right-mix-eventtech/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=right-mix-eventtech</link>
		<comments>http://www.arnimaack.com/2011/12/right-mix-eventtech/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 21:31:47 +0000</pubDate>
		<dc:creator>amaack</dc:creator>
				<category><![CDATA[eventmarketing]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.arnimaack.com/?p=93</guid>
		<description><![CDATA[Here are some notes from my presentation at EventTech I mainly wanted to focus on the inter-connectivity of digital and event based marketing. Digital can be very good at going broad and being readily available anywhere and any place whereas &#8230; <a href="http://www.arnimaack.com/2011/12/right-mix-eventtech/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here are some notes from my presentation at EventTech</p>
<p>I mainly wanted to focus on the inter-connectivity of digital and event based marketing. Digital can be very good at going broad and being readily available anywhere and any place whereas on-site event based experiences can be much more personal and stand out in a world that is becoming more and more digital. Digital for events is not just about doing techie stuff on-site; but rather I think the digital and social marketing methods are very complimentary to events.<br />
<span id="more-93"></span><br />
I broke down an event+digital marketing campaign down into three main sections: Pre-Event, Event and Post-Event. I spoke about which tools are of most value at any given stage. I also found it interesting as I prepared the presentation that although the stages all have their different opportunities and challenges the goal is always to drive people to awareness, interest and eventually engagement. On an abstract level it&#8217;s all very simple but obviously each client/campaign/audience has it&#8217;s own nuances and that&#8217;s where things need to get thought through on a case-by-case basis.</p>
<p>So, here&#8217;s the overall approach that I advocate:</p>
<h3>Pre-Event</h3>
<li>brute force marketing (mass media, banners, emails) goes a long way</li>
<li>in most cases social media and word-of-mouth isn&#8217;t going to do it all for you</li>
<li>social media can be an amplifier for other efforts</li>
<li>for all but the smallest event social media can&#8217;t provide enough info to people who are interested</li>
<li>websites can be engaging but that&#8217;s somewhat gone in the post-flash era</li>
<li>the holy grail is to get people to talk excitedly about your event and/or to rsvp</li>
<h3>Event</h3>
<li>I talked alot about Event Technology in a <a href="2011/05/art-science-tech-event-marketing/">previous presentation</a></li>
<li>It&#8217;s worth reiterating that it&#8217;s supremely important to capture/create &#8220;digital artifacts&#8221; during the event that are interesting to non-attendees, such as photo-booths or live-streaming</li>
<li>Extending your event to non-attendees is the key to a good ROI</li>
<h3>Post-Event</h3>
<li>Time can be defined as days, hours or seconds later, live-streaming or tweeting counts</li>
<li>Website should aggregate all the wonderful things that happened (or better yet are happening) but expect light traffic without the help of social media</li>
<li>Social media is where the post-event content can really flourish, use existing platforms whenever possible</li>
<li>Your attendees&#8217; social media streams are good way to generate views/interactions, get people to share to their network</li>
<p>I also showed case studies for American Express Unstaged, Budweiser&#8217;s Band of Buds and U.s. Army Strength in Action Tour.</p>
<p>At the end I received a great question from one of the attendees, whether a website was necessary for an event marketing tour. My answer was that not as necessary as it used to be because of social media growth&#8230; but there usually winds up being something that you want to do that you can&#8217;t do through Facebook or Twitter&#8230; and it&#8217;s a nice place to aggregate all that content anyway. So, for all but the smallest events or tours I&#8217;d recommend having a website of some sort. It could obviously be a page or a section on an existing brand website. Tumblr could also provide a solution for a small event marketing effort.</p>
<p>Posting this a little a later than usually since I was lucky enough to catch food poisoning at the airport on my way back. Regardless, I think it was a good experience and I&#8217;m pretty hopeful it was overall a worthwhile experience for the attendees.</p>
<h3>Presentation Slides:</h3>
<div class="prezi-player">
<style type="text/css" media="screen">.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }</style>
<p><object id="prezi_j6jumymndmoc" name="prezi_j6jumymndmoc" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=j6jumymndmoc&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"/><embed id="preziEmbed_j6jumymndmoc" name="preziEmbed_j6jumymndmoc" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="550" height="400" bgcolor="#ffffff" flashvars="prezi_id=j6jumymndmoc&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"></embed></object>
<div class="prezi-player-links">
<p><a title="EventTech The Right Mix" href="http://prezi.com/j6jumymndmoc/eventtech-the-right-mix/">EventTech The Right Mix</a> on <a href="http://prezi.com">Prezi</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.arnimaack.com/2011/12/right-mix-eventtech/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art &amp; Science of Choosing the Right Technology (Event Marketing Summit Presentation)</title>
		<link>http://www.arnimaack.com/2011/05/art-science-tech-event-marketing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=art-science-tech-event-marketing</link>
		<comments>http://www.arnimaack.com/2011/05/art-science-tech-event-marketing/#comments</comments>
		<pubDate>Mon, 16 May 2011 20:21:28 +0000</pubDate>
		<dc:creator>amaack</dc:creator>
				<category><![CDATA[eventmarketing]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://www.arnimaack.com/?p=63</guid>
		<description><![CDATA[Here are some notes from my presentation at the Event Marketing Summit in Chicago, IL. The topic was predetermined by the conference organizers and presented an interesting challenge: To talk about how to use technology to a marketing non-techie audience. &#8230; <a href="http://www.arnimaack.com/2011/05/art-science-tech-event-marketing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here are some notes from my presentation at the Event Marketing Summit in Chicago, IL. The topic was predetermined by the conference organizers and presented an interesting challenge: To talk about how to use technology to a marketing non-techie audience. The conference hosts a good mix of agency and client side attendees and I made the choice to primarily cater toward the public events (conferences, sporting events, trade shows) rather than private events figuring that&#8217;s a more common focus of the group and most of the points would translate towards private events.<br />
<span id="more-63"></span><br />
With those premises my main points were as follows:</p>
<h4>Technology and Communication Objectives are connected</h4>
<ul type="disc">
<li>Far away the objectives are to make people aware of your presence and attract them closer</li>
<li>Nearby the objective is to begin influencing your audience, and to get some people to come up closer to engage</li>
<li>Up close you should reward people who are unafraid and not afraid to let them engage and immerse themselves in interactive experiences, they become players in your play that the more timid watch and experience through others</li>
<li>At all stages delight with quality and playfulness that is appropriate to brand tone and event setting</li>
<li>Provide something digital that is easy to share through social channels, preferably personal to the attendee such as their photo, score or &#8220;personalized digital artifact&#8221; of some sort</li>
</ul>
<h4>Touch Screen Kiosks versus Tablets</h4>
<ul>
<li>Touch Screen Kiosks are cheaper to develop for than tablets because of the tools available but cost more per unit</li>
<li>Tablets are more expensive to develop for but become cost effective when using multiple units because of low hardware cost</li>
<li>Tablets are more personal and private but don&#8217;t provide as much visual interest to onlookers</li>
<li>Touch Screen Kiosks provide visual interest for the nearby onlookers but may intimidate the more tech-timid from engaging</li>
</ul>
<p>I think it went over well, received a couple of poignant questions from the audience and hopefully it was a useful 45 minutes for the attendees.</p>
<h3>Presentation Slides:</h3>
<div style="width:425px" id="__ss_7976091"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/imaack/the-art-science-of-selecting-and-using-the-right-technology" title="The Art &amp; Science of Selecting and Using the Right Technology" target="_blank">The Art &amp; Science of Selecting and Using the Right Technology</a></strong> <object id="__sse7976091" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=artsciencetech-110515231049-phpapp02&#038;stripped_title=the-art-science-of-selecting-and-using-the-right-technology&#038;userName=imaack" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse7976091" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=artsciencetech-110515231049-phpapp02&#038;stripped_title=the-art-science-of-selecting-and-using-the-right-technology&#038;userName=imaack" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/imaack" target="_blank">imaack</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.arnimaack.com/2011/05/art-science-tech-event-marketing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement with HTML/JS/Flash</title>
		<link>http://www.arnimaack.com/2010/09/progressive-enhancement/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=progressive-enhancement</link>
		<comments>http://www.arnimaack.com/2010/09/progressive-enhancement/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 23:41:42 +0000</pubDate>
		<dc:creator>amaack</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.arnimaack.com/blog/?p=33</guid>
		<description><![CDATA[Last week I gave a presentation at Flash Camp St. Louis about Progressive Enhancement. With so many different types of devices out there a strategy that allows an optimal presentation for each device makes a lot of sense. The concept &#8230; <a href="http://www.arnimaack.com/2010/09/progressive-enhancement/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week I gave a presentation at Flash Camp St. Louis about Progressive Enhancement. With so many different types of devices out there a strategy that allows an optimal presentation for each device makes a lot of sense. The concept of Progressive Enhancement has been around for a while but has new relevance in the mobile age.<br />
<span id="more-33"></span></p>
<h3>Core Ideas:</h3>
<ul>
<li>Provide simple HTML content without reliance on JavaScript, CSS or Flash</li>
<li>Enhance with CSS that is non-browser specific, optionally include browser specific markup that further enhance the presentation</li>
<li>Add JavaScript to provide at least minimal functionality on non Flash browsers</li>
<li>Replace select HTML and JavaScript components with Flash components</li>
<li>Using JavaScript feed in the HTML content to the Flash components and parse it like XML (this allows you to update your content in one place)</li>
</ul>
<h3>Main Benefits:</h3>
<ul>
<li>Content is SEO and text-browser friendly</li>
<li>Content displays and is functional in lesser featured devices (such as iPhones and other non-Flash enabled devices)</li>
<li>On full featured devices optimal displays is achieved</li>
</ul>
<h3>Sample Code:</h3>
<ul>
<li><a href="http://arnimaack.com/labs/progressive-enhancement-demo/basic.html">Content Only</a></li>
<li><a href="http://arnimaack.com/labs/progressive-enhancement-demo/simple.html">Simple Presenation</a></li>
<li><a href="http://arnimaack.com/labs/progressive-enhancement-demo/enhanced.html">Enhanced Presentation</a></li>
</ul>
<h3>Presentation Slides:</h3>
<div style="width:425px" id="__ss_5186154"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/imaack/progressive-enhancement-5186154" title="Progressive enhancement">Progressive enhancement</a></strong><object id="__sse5186154" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=progressiveenhancement-100912164912-phpapp02&#038;stripped_title=progressive-enhancement-5186154" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5186154" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=progressiveenhancement-100912164912-phpapp02&#038;stripped_title=progressive-enhancement-5186154" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/imaack">imaack</a>.</div>
</div>
<h3>Summary:</h3>
<p>I hope you find this presentation useful and relevant to the issues we face to day in web development. Please shoot me a comment if you have any questions or comments, feedback is always good.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arnimaack.com/2010/09/progressive-enhancement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR all-in-one Installers on CD-DVD</title>
		<link>http://www.arnimaack.com/2008/10/air-all-in-one-installers-on-cd-dvd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=air-all-in-one-installers-on-cd-dvd</link>
		<comments>http://www.arnimaack.com/2008/10/air-all-in-one-installers-on-cd-dvd/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 08:10:53 +0000</pubDate>
		<dc:creator>amaack</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.arnimaack.com/blog/?p=18</guid>
		<description><![CDATA[One of the biggest hurdles I felt that I had to overcome to make AIR a viable alternative to the reigning SWF wrapper was installation. The Badge installer has been well documented and publicized but so far the side-car installer &#8230; <a href="http://www.arnimaack.com/2008/10/air-all-in-one-installers-on-cd-dvd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the biggest hurdles I felt that I had to overcome to make AIR a viable alternative to the reigning SWF wrapper was installation. The Badge installer has been well documented and publicized but so far the side-car installer has received almost no attention. Ultimately, the ability to create a user-friendly installation process from CD/DVD without requiring internet connectivity is an absolute requirement for a large portion of our projects. On this page I will lay out the few and simple steps required to put together a Mac/PC CD/DVD with a one click runtime/app installers for both platform.<br />
<span id="more-25"></span></p>
<h2>1. Make an air file</h2>
<p>Build your &#8220;NativeApplication&#8221; and export for release (Flex developers) or package your html and javascript files as an AIR file (Javascript developers).</p>
<h2>2. Apply for a distribution license</h2>
<p>You can apply for a runtime distribution license <a href="http://www.adobe.com/products/air/runtime_distribution1.html" target="_blank">here</a>.</p>
<h2>3. Download installer files (link provided by adobe in email)</h2>
<p>Once your runtime distribution application has been accepted you will be notified via email and that email will contain links to download the runtime installation as well as their &#8220;side-car&#8221; installer for Mac and Windows. This may take a day or two to go through so don&#8217;t do this last minute.</p>
<h2>4. Create a file called .airinstall.cfg</h2>
<p>As instructed by the documentation found on the download page for the runtime environment you will want to create a file called &#8220;.airinstall.cfg&#8221;. Since files starting with a &#8220;.&#8221; will be hidden on OS X I find it useful to have a utility such as Houdini at my disposal to turn hidden files visibility on and off (see link at the bottom of this article). The file should be a plain text file and the only contents of it should be the name of your air file (you could have the path and keep the air file in a subfolder but my personal opinion is that you&#8217;d be tempting fate, keep it simple and keep your air file on the root of the cd/dvd).<br/><br />

<a href='http://www.arnimaack.com/2008/10/air-all-in-one-installers-on-cd-dvd/airinstallcfg/' title='airinstallcfg'><img width="150" height="150" src="http://www.arnimaack.com/wp-content/uploads/2010/09/airinstallcfg-150x150.png" class="attachment-thumbnail" alt=".airinstallcfg file" title="airinstallcfg" /></a>
<a href='http://www.arnimaack.com/2008/10/air-all-in-one-installers-on-cd-dvd/airinstallcfg-2/' title='airinstallcfg'><img width="150" height="150" src="http://www.arnimaack.com/wp-content/uploads/2010/09/airinstallcfg-150x150.jpg" class="attachment-thumbnail" alt="saving the .airinstallcfg file" title="airinstallcfg" /></a>
</p>
<h2>5. Gather both the Mac and the PC side-car install files</h2>
<p>Now copy all the files from the Windows and Mac side-car installer downloads into a folder with your Air package. I like to master on a Mac since in my experience OS X is better at handling PC files than Windows is at handling Mac files. Your folder should look something like this.<br/></p>
<h2>6. Make it pretty</h2>
<p>Rename the installer exe and app files so that they are easily identifiable as the files to click for installation.</p>
<h2>7. Make it simple</h2>
<p>Use a burning program to create a Mac/PC disc and to make things easier hide Mac files from the PC and vice versa, this will make it a lot easier for users to figure out what files to use.<br/><br />
<a href="http://www.arnimaack.com/attachments/flexseries4-install/burning.png" target="_blank"><img src="/attachments/flexseries4-install/thumb_burning.png" /></a></p>
<h2>8. Watch it work</h2>
<p>a. If you don&#8217;t have the AIR framework installed the installer should first run you through that installation<br/><br />
<a href="http://www.arnimaack.com/attachments/flexseries4-install/airinstallmac.png" target="_blank"><img src="/attachments/flexseries4-install/thumb_airinstallmac.png" /></a><br/><br />
b. Once the framework installation is completed or if you already had it installed the installer should go on to install the application.<br/><br />
<a href="http://www.arnimaack.com/attachments/flexseries4-install/appinstallmac.png" target="_blank"><img src="/attachments/flexseries4-install/thumb_appinstallmac.png"  /></a><br/></p>
<p>That&#8217;s it. I hope you find this tutorial accurate and simple to follow. If you have any other ways of putting together an installer post a comment and let me know how you like to do it.</p>
<h2>Tools of the trade</h2>
<h3>Houdini</h3>
<p>A very useful tool for turning file visibility on and off is <a href="http://www.macupdate.com/info.php/id/26729/houdini" target="_blank">Houdini</a></p>
<h3>Toast</h3>
<p>There&#8217;s no getting around the fact that if you&#8217;re mastering for CD/DVD delivery you will need some sort of burning software. I&#8217;ve been prett happy with <a href="http://www.roxio.com/enu/products/toast/titanium/overview.html" target="_blank">Toast</a>.</p>
<h2> Known issues</h2>
<p>I should note that one of my testing computers, running Windows 2000, was not able to run the all-in one installers although when installed separately both AIR and my sample application installed and ran without any noticeable flaws. I will post update if I discover a more elegant solution than what I have done so far, which is to have a Win2000 install folder with the two installation files.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arnimaack.com/2008/10/air-all-in-one-installers-on-cd-dvd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Updating AIR apps is easy!</title>
		<link>http://www.arnimaack.com/2008/09/updating-air-apps-is-easy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=updating-air-apps-is-easy</link>
		<comments>http://www.arnimaack.com/2008/09/updating-air-apps-is-easy/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 08:06:57 +0000</pubDate>
		<dc:creator>amaack</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.arnimaack.com/blog/?p=14</guid>
		<description><![CDATA[When the Adobe Integrated Runtime (AIR) first came out I was immediately interested to see that what it would offer in the form of update management. Sure enough there was support for it to the point where you could initiate &#8230; <a href="http://www.arnimaack.com/2008/09/updating-air-apps-is-easy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When the Adobe Integrated Runtime (AIR) first came out I was immediately interested to see that what it would offer in the form of update management. Sure enough there was support for it to the point where you could initiate an installation of an update once it has been downloaded. That in itself I thought was a really good piece of functionality and I started to experiment with it immediately. But now, Adobe has offered an even greater update support with their <a href="http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework" target="_blank">Update Framework available on labs</a>.<span id="more-24"></span> This framework helps with checking for updates, downloading and installing among other things. Although there are many components and configuration to consider the essential code looks very simple. Here is a singleton class I have put together that leverages the update framework:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="as3" style="font-family:monospace;">public class UpdateManager{
   private var appUpdater:ApplicationUpdaterUI		
&nbsp;
  Static singleton class
  // singleton function and singleton variable
&nbsp;
  protected static var updateManager:UpdateManager;
&nbsp;
  public static function getInstance():UpdateManager {
      if ( updateManager == null )
        updateManager = new UpdateManager();
      }
      return updateManager;&lt;/code&gt;
  }
&nbsp;
  public function UpdateManager(){&lt;/code&gt;
      appUpdater = new ApplicationUpdaterUI()&lt;/code&gt;
      appUpdater.configurationFile = new File(&quot;app:/content/data/update.xml&quot;);&lt;/code&gt;
      appUpdater.initialize();&lt;/code&gt;
  }
&nbsp;
&nbsp;
  public function updateNow():void{&lt;/code&gt;
    appUpdater.checkNow();&lt;/code&gt;
  }
&nbsp;
}</pre></td></tr></table></div>

<p>There are two basic &#8220;flavors&#8221; of the update framework, one without a user interface and one with it. I have chosen to use the framework with it&#8217;s default UI and that&#8217;s often a good starting point for an application. If you have time later you can always switch over to the UI free framework (that&#8217;s why I like to isolate all calls to the update framework in my own class).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arnimaack.com/2008/09/updating-air-apps-is-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Foundation for a great AIR application with Flex</title>
		<link>http://www.arnimaack.com/2008/09/foundation-for-a-great-air-application-with-flex/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=foundation-for-a-great-air-application-with-flex</link>
		<comments>http://www.arnimaack.com/2008/09/foundation-for-a-great-air-application-with-flex/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 08:01:49 +0000</pubDate>
		<dc:creator>amaack</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[cairngorm]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://www.arnimaack.com/blog/?p=10</guid>
		<description><![CDATA[After having used MDM Zinc for a few years to create RIAs or “desktop flash applications&#8221; I was very excited to see an Adobe wrapper for the flash platform. I think Adobe has done a good job with it and &#8230; <a href="http://www.arnimaack.com/2008/09/foundation-for-a-great-air-application-with-flex/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After having used MDM Zinc for a few years to create RIAs or “desktop flash applications&#8221; I was very excited to see an Adobe wrapper for the flash platform. I think Adobe has done a good job with it and an excellent job supporting it with various add-ons such as the update framework, the Badge installer and the lesser known Side Car installers (more on all these add-ons in my final two posts in this series). Right now I want to list a few things that I think can really help make a good AIR app that is easy to maintain as well. <span id="more-23"></span></p>
<h2>1. Use a “SystemManager class” where you make all your AIR specific calls.</h2>
<p>This will make it much easier when you (or your client) decide to make a web based version of the app or if you are already maintaining web and AIR versions.</p>
<p><u>PlaybackManager.as (responsible for loading files, stopping, pausing, etc&#8230;):</u></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="as3" style="font-family:monospace;">  var songURL:String = SystemManager.getInstance().getAudioUrl(fileVO.file)
  sound1.load(new URLRequest(songURL));</pre></td></tr></table></div>

<p><u>SystemManager.as (responsible for handling file paths and basically anything that&#8217;s dependent on AIR):</u></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="as3" style="font-family:monospace;">  private var audioDirectory:String = &quot;content/audio&quot; 
  /* or we could use air to reference the application storage directory
  * private var audioDirectory:String = File.applicationStorageDirectory.resolvePath(&quot;content/audio&quot;).nativePath;
  */  
  public function getAudioUrl(fileName):String{
    return audioDirectory+&quot;/&quot;+fileName;
  }</pre></td></tr></table></div>

<h2>2. Make an icon and give your app a name</h2>
<p>Air and Flex gives you all those nifty settings in the –app.xml file so use them. This includes application title, window titles, installation directory and icons. For more information <a href="http://livedocs.adobe.com/flex/3/html/File_formats_1.html#1043413" target="_blank">see this page on livedocs</a>.</p>
<h2>3. Get a security certificate</h2>
<p>If you are building an AIR app for commercial distribution you should probably sign up for a security certificate. You can create your own certificate through FlexBuilder but it will not look as official during installation and will give a higher warning level to the end user. For more information <a href="http://livedocs.adobe.com/flex/3/html/distributing_apps_4.html#1037515" target="_blank">see this page on livedocs</a>.</p>
<h2>4. Set up an update feature before the first release</h2>
<p>In my next article in the series I will go over updating and I just want to stress the importance of adding this feature early. This really should be the first feature you build since it will make it so much easier to fix bugs or add important features after the first initial release. If you omit it you have no easy way of pushing it to your users.</p>
<h2>5. Let users know what version they&#8217;re using</h2>
<p>If you want an easy automatic way of displaying the current version of the app you can tap into the “-app.xml” to retrieve the version number of the app. I found this method in the sample files from Adobe&#8217;s Update Framework (more on that later) and I find this more reliable than me remembering to update a version number somewhere on the UI.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="as3" style="font-family:monospace;">private function setApplicationNameAndVersion():void {
	var appXML:XML = NativeApplication.nativeApplication.applicationDescriptor;
	var ns:Namespace = appXML.namespace();
	lblAppVersion.text = appXML.ns::version;
	lblAppName.text = appXML.ns::name;
}</pre></td></tr></table></div>

<h2>6. Have a strategy on how you save data</h2>
<p>Something that is a little different from other wrappers I have worked with is that after installation you can’t save any data to the applicationDirectory so you should plan to either save data to the applicationStorageDirectory or creating your own custom directory in the user’s document directory. I&#8217;m as gulty as the next guy when it comes this, but don&#8217;t forget about the built in sqllite feature.<br />
<!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arnimaack.com/2008/09/foundation-for-a-great-air-application-with-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex Architecture, Cairngorm vs component events</title>
		<link>http://www.arnimaack.com/2008/09/flex-architecture-cairngorm-vs-component-events/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=flex-architecture-cairngorm-vs-component-events</link>
		<comments>http://www.arnimaack.com/2008/09/flex-architecture-cairngorm-vs-component-events/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 07:57:01 +0000</pubDate>
		<dc:creator>amaack</dc:creator>
				<category><![CDATA[cairngorm]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://www.arnimaack.com/blog/?p=6</guid>
		<description><![CDATA[When we started looking for the right framework to use at my place of work we looked at a few different frameworks that were out there. PureMVC and Cairngorm stood out as the main candidates and since we need to &#8230; <a href="http://www.arnimaack.com/2008/09/flex-architecture-cairngorm-vs-component-events/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When we started looking for the right framework to use at my <a href="http://www.touchwoodcreative.com" target="_blank">place of work</a> we looked at a few different frameworks that were out there. PureMVC and Cairngorm stood out as the main candidates and since we need to outsource things on occasion the natural decision was to go with due to it’s popularity and unofficial Adobe backing. </p>
<p>However, there are some grey areas when it comes to cairngorm that each developer has to figure out for himself such how to decide between using a cairngorm event and when to use a normal flex component event. Antoher grey area is how deep to go when binding to the ModelLocator. <span id="more-22"></span></p>
<p>Here are my general rules that I try to follow as my own “best practices”:</p>
<h2>1. Only dispatch cairngorm events in first level components.</h2>
<p>This should work great for simple to moderately complex applications and make event dispatching more consistent. It should also make your custom components more reusable since you don’t have to dig through them to remove references to cairngorm events that don’t exist. If you have a very complex application you can extend this second or even third level components but simply staying consistent will help in the long run.</p>
<h2>2. Only bind to the model on first level components.</h2>
<p>This follows the same logic as rule number one and I would also suggest that if you are binding a component to more than two properties in the ModelLocator, consider using a value object for it.</p>
<h2>3. Events and Commands should only “work with” one type of value object.</h2>
<p>This allows you to pass the VO you are working with as the data parameter of a cairngorm event without worrying about typing errors occurring at runtime.</p>
<hr />
<b>Further References:</b><br />
For more information on how to use cairngorm go to:<br />
<a href="http://www.adobe.com/devnet/flex/articles/cairngorm_pt1.html" target="_blank">http://www.adobe.com/devnet/flex/articles/cairngorm_pt1.html</a></p>
<p>For samples of cairngorm applications and to download the framework swcs go to:<br />
<a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" target="_blank">http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arnimaack.com/2008/09/flex-architecture-cairngorm-vs-component-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

