<?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>David J McClelland</title>
	<atom:link href="http://www.davidjmcclelland.com/etc/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.davidjmcclelland.com</link>
	<description>Experiences at the Intersection of Programming &#38; Design</description>
	<lastBuildDate>Wed, 18 Apr 2012 02:19:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Developing on Macintosh</title>
		<link>http://www.davidjmcclelland.com/?p=1998</link>
		<comments>http://www.davidjmcclelland.com/?p=1998#comments</comments>
		<pubDate>Wed, 18 Apr 2012 00:49:59 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Macintosh development]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1998</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1998"><img class="alignnone size-thumbnail wp-image-2008" title="macbook_pro_17" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/04/macbook_pro_17.jpg" alt="" width="140" height="140" alt="" width="150" height="94" /> <img class="alignnone  wp-image-2011" title="Dell_AlienWare_M14x_Gaming_Laptop" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/04/Dell_AlienWare_M14x_Gaming_Laptop.jpg" alt="" width="105" height="90"/></a>
<br/><br/>I recently started a new job and was offered the choice of PC or Mac to develop on. In fact, it was between a PC laptop and desktop (both I7 quad cores) or a single MacBook Pro. ]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone  wp-image-2008 colorbox-1998" title="macbook_pro_17" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/04/macbook_pro_17.jpg" alt="" width="140" height="140" /><img class="alignnone  wp-image-2011 colorbox-1998" title="Dell_AlienWare_M14x_Gaming_Laptop" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/04/Dell_AlienWare_M14x_Gaming_Laptop.jpg" alt="" width="105" height="90" /></p>
<p>I recently started a new job and was offered the choice of PC or Mac to develop on. In fact, it was between a PC laptop and desktop (both I7 quad cores) or a single MacBook Pro.</p>
<p>Of course I went with the Mac. It has been such a long time since I have had the pleasure of working on a beautiful machine, and what would I need a desktop for anyway? I already have my own PC laptop (Alien M11x), and will have parallels running Windows 7 on the Mac soon as well.</p>
<p>I have been surprised at how many tools I use are available on both platforms.</p>
<table border="1">
<tbody>
<tr>
<td>Name</td>
<td>MAC</td>
<td>PC</td>
</tr>
<tr>
<td>Adobe Suite</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>MS Office</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Eclipse</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>IntelliJ IDEA</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>DiffMerge</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Webex</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>GotoMeeting</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Jing</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>FileMaker</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Skype</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Live Mesh</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>TeamViewer</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>FileZilla</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>DropBox</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Evernote</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Skitch</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Kindle</td>
<td>X</td>
<td>X</td>
</tr>
</tbody>
</table>
<p>The tools I miss the most are Tortoise Hg and SVN clients which have no equivalent Finder-integrated equivalents on Mac that I know of. XCode, Garage Band and the MAC OS experience make up for this, along with Cornerstone and SourceTree.</p>
<p>OSX Lion maintains its System 7 roots &#8211; including the hidden files annoyance and the cmnd-opt-esc force-quit combo. Terminal and X-Code are really nice additions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1998</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing for iOS using Flex 4.6</title>
		<link>http://www.davidjmcclelland.com/?p=1973</link>
		<comments>http://www.davidjmcclelland.com/?p=1973#comments</comments>
		<pubDate>Sat, 25 Feb 2012 16:05:06 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[Command Line]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[multi-platform]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1973</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1973"><img class="size-thumbnail wp-image-1994 alignnone" title="iOS-AIR" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/iOS-AIR-e1330187369102-150x119.png" alt="iOS-AIR" width="150" height="119" /></a><br/>
Compared to authoring to Android, publishing to an iOS device from a PC is a pain. It beats spending over 1K for an Mac Mini just for that purpose. And hats off to Adobe for finding a way to make it possible.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/iOS-AIR.png" rel="shadowbox[sbpost-1973];player=img;" title="iOS-AIR"><img class="size-thumbnail wp-image-1994 alignnone colorbox-1973" title="iOS-AIR" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/iOS-AIR-e1330187369102-150x119.png" alt="iOS-AIR" width="150" height="119" /></a></p>
<p>Compared to authoring to Android, publishing to an iOS device from a PC is a pain. It beats spending over 1K for an Mac Mini just for that purpose. And hats off to Adobe for finding a way to make it possible.</p>
<p>Get Flex 4.6 and open the &#8220;Hello World&#8221; targeting iOS (and BB/Android). Go for a release build, select Captive Air. At prompt for Packaging Settings you will see this:</p>
<div id="attachment_1974" class="wp-caption alignnone" style="width: 160px"><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/Flex_Release_Build.png" rel="shadowbox[sbpost-1973];player=img;" title="Flex Release Build"><img class="size-thumbnail wp-image-1974 colorbox-1973" title="Flex Release Build" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/Flex_Release_Build-e1330132878602-150x108.png" alt="Flex Release Build" width="150" height="108" /></a><p class="wp-caption-text">Flex Release Build</p></div>
<div id="attachment_1975" class="wp-caption alignnone" style="width: 160px"><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/Flex_Release_Build2.png" rel="shadowbox[sbpost-1973];player=img;" title="Flex Release Build With iOS Target Fields Empty"><img class="size-thumbnail wp-image-1975 colorbox-1973" title="Flex Release Build With iOS Target Fields Empty" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/Flex_Release_Build2-e1330132996602-150x108.png" alt="Flex Release Build With iOS Target Fields Empty" width="150" height="108" /></a><p class="wp-caption-text">Flex Release Build With iOS Target Fields Empty</p></div>
<p>In order to move past this point in the release process you will need to complete a number of steps:</p>
<div id="wp-spoiler-1" class="wp-spoiler ui-lightness jqui-styles">  <h3 class="wp-spoiler-title fade-true slide-true open-false">Apple Developer Program</h3><div class="wp-spoiler-content"></p>
<p><a title="free" href="https://developer.apple.com/programs/start/standard/" target="_blank">Join Apple Developer Program</a></p>
<p><a title="$99" href="https://developer.apple.com/ios/enroll/purchaseInProgress.action" target="_blank">Buy iOS Developer Subscription</a></p>
<p><a title="itunes" href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=2&amp;ved=0CEsQjBAwAQ&amp;url=http%3A%2F%2Fwww.apple.com%2Fitunes%2Fdownload%2F&amp;ei=-zlIT8PMMKPJ0AGc4eilDg&amp;usg=AFQjCNENuVc_o_--Xqy58b9gXwZp9phbKQ&amp;sig2=Y6dnnMqxyr-yQ9l2ElQvrg" target="_blank">Install iTunes</a></p>
<p><a title="Get  UDID of device" href="http://help.adobe.com/en_US/flex/mobileapps/WS064a3073e805330f6c6abf312e7545f65e-8000.html#WSe4e4b720da9dedb5-27e02e9a12ee20e4a60-7fff" target="_blank">Get iOS Device ID</a></p>
<p>Activate your developer membership via email that comes within 24 hours from Apple:</p>
<p><div id="attachment_1976" class="wp-caption alignnone" style="width: 160px"><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/DeveloperActivationSequence.png" rel="shadowbox[sbpost-1973];player=img;" title="Developer Activation Sequence"><img class="size-thumbnail wp-image-1976 colorbox-1973" title="Developer Activation Sequence" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/DeveloperActivationSequence-e1330145162514-150x70.png" alt="Developer Activation Sequence" width="150" height="70" /></a><p class="wp-caption-text">Developer Activation Sequence</p></div></p>
<p></div>  </div><!-- end div.wp-spoiler -->
<div id="wp-spoiler-2" class="wp-spoiler ui-lightness jqui-styles">  <h3 class="wp-spoiler-title fade-true slide-true open-false">Certificate Creation Process</h3><div class="wp-spoiler-content"></p>
<p><a title="Adobe guide to Provisioning an iOS Device for development" href="http://help.adobe.com/en_US/flex/mobileapps/WS064a3073e805330f6c6abf312e7545f65e-8000.html#WSe4e4b720da9dedb5-27e02e9a12ee20e4a60-7fff" target="_blank">Create a Certificate Signing Request</a></p>
<p>The certificate process is a bit of a command line mess: <a title="OpenSSL Binaries Distribution Site" href="http://www.slproweb.com/products/Win32OpenSSL.html" target="_blank">OpenSSL</a> is by and for developers.  There are many versions to choose from: do not get the &#8220;light&#8221; version, and get the one for your version of WIndows &#8211; 32 or 64-bit. If you need to install Visual C++ 2008 Redistributables the links are in the same table with the WinSSL binaries. I used <a href="http://www.slproweb.com/download/Win64OpenSSL-1_0_0g.exe">Win64 OpenSSL v1.0.0g</a>.</p>
<p>Go to the Provisioning Portal to set up a provision file for each iOS device you plan to test on:</p>
<p><div id="attachment_1978" class="wp-caption alignnone" style="width: 160px"><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/provisioningWelcome.png" rel="shadowbox[sbpost-1973];player=img;" title="Provisioning Welcome"><img class="size-thumbnail wp-image-1978 colorbox-1973" title="Provisioning Welcome" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/provisioningWelcome-e1330145264459-150x150.png" alt="Provisioning Welcome" width="150" height="150" /></a><p class="wp-caption-text">Provisioning Welcome</p></div></p>
<p>Download both Provision and Certificate file</p>
<p>input the path to provision file, certificate file and the password you were prompted to create during the certificate conversion process.</p>
<p></div>  </div><!-- end div.wp-spoiler -->
<div id="wp-spoiler-3" class="wp-spoiler ui-lightness jqui-styles">  <h3 class="wp-spoiler-title fade-true slide-true open-false">Certificate Maintenance</h3><div class="wp-spoiler-content"></p>
<p>How I keep my certificates organized and secure:</p>
<p><div id="attachment_1979" class="wp-caption alignnone" style="width: 322px"><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/2012-02-24_2350.png" rel="shadowbox[sbpost-1973];player=img;" title="Certificate Directory"><img class="size-full wp-image-1979 colorbox-1973" title="Certificate Directory" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/2012-02-24_2350.png" alt="Certificate Directory" width="312" height="233" /></a><p class="wp-caption-text">Certificate Directory</p></div></p>
<ol>
<li>The CertificateSigningRequest.certSigningRequest is the file you need to generate and upload to the Apple Provisioning Portal</li>
<li>I organized the commands from Adobe&#8217;s instruction steps in a text cheat sheet. I cut and paste with my specific information in the commands. If I need to create another version I will modify this.</li>
<li>The .cer file is the iOS application certificate from the Apple Provisioning Portal</li>
<li>The .mobileProvision file is from Apple Provisioning Portal. I didn&#8217;t use it for anything.</li>
<li>An Android AIR certificate (I keep all certificates for AIR in one directory).</li>
<li>davidjmcclelland_portfolio.cer is a bad file I should have deleted.</li>
<li>The final .P12 file that Adobe AIR uses for iOS output. Converted to this format from the .pem file of same name by OpenSSL.</li>
<li>ios_development.pem was converted from ios_development.cer by OpenSSL.</li>
<li>mykey.key is the private key generated by OpenSSL. It corresponds to the public key embedded in CertificateSigningRequest.</li>
</ol>
<p>Now that I have been all the way through this process I will try to use the same filename as my project for all of the certificate files so that I can keep them together. The Provisioning Portal named the files I downloaded ios_development so I left them alone in case changing the name broke anything.  I keep them all under version control.</p>
<p>What this elaborate process does is ensure that the identity of the creator of any iOS application can be traced like a chain of custody.</p>
<p></div>  </div><!-- end div.wp-spoiler -->
<p>Publish to iOS and wait several minutes for an .ipa file to be created.</p>
<p>Drag the ipa file onto iTunes Library section of Left menu and drop it. Then sync to iOS device to get app installed.</p>
<p>Run app. Whew!</p>
<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/PackagingComplete.png" rel="shadowbox[sbpost-1973];player=img;" title="PackagingComplete"><img class="alignnone size-medium wp-image-1977 colorbox-1973" title="PackagingComplete" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/PackagingComplete-300x102.png" alt="" width="300" height="102" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1973</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Captive AIR: Flex is Finally a Legit App Solution</title>
		<link>http://www.davidjmcclelland.com/?p=1968</link>
		<comments>http://www.davidjmcclelland.com/?p=1968#comments</comments>
		<pubDate>Mon, 20 Feb 2012 13:30:38 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Practice]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1968</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1968"><img class="alignnone size-full wp-image-1970" title="captiveAIR" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/captiveAIR.png" alt="" width="120" height="120" /></a>
<br/>It finally establishes Flex mobile as a legitimate cross-platform approach. No-one knows/cares what tooling I used to develop a free-standing app, and they certainly don't want to hear that their device won't run my app because it isn't certified to run the latest version of AIR. As a developer I can't afford to guess how many devices I am abandoning when I move from 4.5 to 4.5.1 SDK.]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1970 colorbox-1968" title="captiveAIR" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/captiveAIR.png" alt="" width="225" height="225" /></p>
<p>Getting a Flash project to compile and run on Android devices is pretty well covered on <a title="GotoandLearn" href="http://gotoandlearn.com/play.php?id=123" target="_blank">gotoandlearn.com</a> &#8211; I recommend starting there. Some of the instructions are out of date but I was able to make it work.</p>
<p>I spent way too much time getting my Motorola Triumph to come up. If you have one, there is some good reference <a title="Triumph on ADB" href="http://community.developer.motorola.com/t5/Android-App-Development-for/Triumph-as-a-dev-phone/td-p/16984" target="_blank">here</a>.&nbsp;Amazon Fire was also a challenge to connect with, and is stuck on AIR 2.7. This required changing SDK to 4.0 and hacking the AIR Application Descriptor file which had already been generated to call for 3.1. &nbsp;This aspect of mobile dev is counterproductive once you get over the thrill of testing an app a couple of times. It does underscore the incredible advantage Flex/Flash present for rapid development of mobile apps though, since you can develop a lot before testing on a device or emulator.</p>
<p>My experience targeting the Fire made it clear to me why AIR captive runtime is really not a nice-to-have option: &nbsp;it is the only way to guarantee your AIR-based app will run on a wide range of phone and tablet form factors. Compare the incremental download time/space savings of AIR to the installation user experience, developer effort and Flash-taint-avoidance. It finally establishes Flex mobile as a legitimate cross-platform approach. No-one knows/cares what tooling I used to develop a free-standing app, and they certainly don&#8217;t want to hear that their device won&#8217;t run my app because it isn&#8217;t certified to run the latest version of AIR. As a developer I can&#8217;t afford to guess how many devices I am abandoning when I move from 4.5 to 4.5.1 SDK.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1968</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Navigating Cross-Platform The Adobe Way</title>
		<link>http://www.davidjmcclelland.com/?p=1963</link>
		<comments>http://www.davidjmcclelland.com/?p=1963#comments</comments>
		<pubDate>Thu, 16 Feb 2012 17:27:08 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Practice]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[platforms]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1963</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1963"><img class="alignnone  wp-image-1964" title="flash2" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/flash2-300x219.png" alt="" width="150" height="110" /></a>

I am circling back to the Adobe multi-platform development approach now that I am using ActionScript 3 and MXML all day. I just don't have the bandwidth right now to be productive in Haxe, HTML5 or other language variants with my new full-time Flex responsibilities.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/flash2.png" rel="shadowbox[sbpost-1963];player=img;" title="flash2"><img class="alignnone  wp-image-1964 colorbox-1963" title="flash2" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/flash2-300x219.png" alt="" width="150" height="110" /></a></p>
<p>I am circling back to the Adobe multi-platform development approach now that I am using ActionScript 3 and MXML all day. I just don&#8217;t have the bandwidth now to be productive in Haxe, HTML5 or other language variants with my new full-time Flex responsibilities.</p>
<p>Meanwhile I hear questions about what alternative to Flex should be pursued, so that keeps the alternative pressure on.</p>
<p>So I am focusing on what is required to build to Desktop, browsers, iOS and Android from Adobe tooling, and incorporating any other required.</p>
<p>So far that meant installing <a title="Android SDK" href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;ved=0CDYQFjAA&amp;url=http%3A%2F%2Fdeveloper.android.com%2Fsdk%2F&amp;ei=1zM9T_yfEsnW0QGC1onxBw&amp;usg=AFQjCNG2OCt-GU5GslQw7zE0jmgKb3auDA" target="_blank">Android SDK</a> and attempting to get a phone to show up for ADB. I have a Motorola Triumph, Droid 3 and Kindle fire to try. So far the Triumph does not show up, but I may have installed the USB storage drivers that came with the phone on dev machine. I have to admit, I have never once gotten a phone to work with ADB.</p>
<p>I downloaded <a title="Moto Dev Studio" href="http://developer.motorola.com/docstools/motodevstudio/?utm_campaign=mhp01092012&amp;utm_source=mhp&amp;utm_medium=mws" target="_blank">Motorola&#8217;s eclipse-based development environment </a>- maybe it has some magic.</p>
<p>iOS will be an interesting challenge as I have to justify buying a dev license and possible set up a <a title="Hackintosh" href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;ved=0CDkQFjAA&amp;url=http%3A%2F%2Fwww.hackintosh.com%2F&amp;ei=tTQ9T6mFHYHx0gGqhdm5Bw&amp;usg=AFQjCNGs4-bNiFsMqze_j7S-NGw947CG2w" target="_blank">Hackintosh </a>to get something on the only iOS device in my house &#8211; an iPad2. I finished off the iPod we had trying to fix the cracked screen with a replacement kit.</p>
<p>One note on the Moto Triumph &#8211; this is a prepay Android 2.2.2 smartphone through Virgin &#8211; I own the phone outright for $300 and can use it on Virgin or Sprint. Virgin is $25/month for &#8220;unlimited&#8221; data and text plus some voice (which I don&#8217;t use anyway) and it is almost as good as the Droid. When you look at total cost of ownership, it is about $1400 less than a less-well equipped iPhone or Droid on Verizon with a similar plan over 2 years &#8211; less than half.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1963</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Going Enterprise @ Home</title>
		<link>http://www.davidjmcclelland.com/?p=1918</link>
		<comments>http://www.davidjmcclelland.com/?p=1918#comments</comments>
		<pubDate>Wed, 15 Feb 2012 13:57:19 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Practice]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1918</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1918 "><img class="alignnone size-thumbnail wp-image-1959" title="enterpriseHome" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/enterpriseHome-150x150.jpg" alt="" width="150" height="150" /></a><br/>Layering on enterprise development tools and methods on my personal development environment. ]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/enterpriseHome.jpg" rel="shadowbox[sbpost-1918];player=img;" title="enterpriseHome"><img class="alignnone size-thumbnail wp-image-1959 colorbox-1918" title="enterpriseHome" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/enterpriseHome-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>Recently, my personal projects have consisted of building &#8220;rough drafts&#8221; of components slated in my build plan at work. This has enabled me to approach a problem with familiar methods and then translate them into the enterprise method. However, it is something I hope will diminish fairly quickly so I can move on to more productive activities.</p>
<p>Having an active model implementation to compare to and learn from is an invaluable opportunity. &nbsp;I can start layering on additional enterprise development tools and methods on my personal development environment.&nbsp;I will measure my success at this by how it influences my standing as an enterprise citizen.</p>
<p>Right now I would index enterprise citizenship based on these developer roles:</p>
<ul>
<li>naive&nbsp;thrall</li>
<li>educated consumer</li>
<li>enlightened contributor/questioner</li>
<li>process participant/collaborator</li>
<li>process owner/architect</li>
</ul>
<p>As I see it, there are three areas these roles vary in what they address: tooling, work practice and integration.</p>
<p>Tooling should be the easiest: the enterprise where I am currently &#8220;enthralled&#8221; uses mostly FOSS software that I can attempt to replicate on a smaller scale and compare as I go. So far this is proving to be a lot more challenging than I expected.</p>
<p>I am going to hold my scope to individual work practices for now.&nbsp;I will the tools I set up following agile practices as much as possible as an individual dev who is also the customer. This means building tests, programming to interfaces, code coverage etc. That should be a matter of personal discipline and mapping enterprise practice where I work.</p>
<p>Integration is going to be difficult working standalone. I can set up a WSDL service and/or use Google API&#8217;s to initiate some automation in my builds. I am also targeting multiple platforms which may benefit from automation too.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1918</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confessions of a New Enterprise Flex Dev Part 3</title>
		<link>http://www.davidjmcclelland.com/?p=1948</link>
		<comments>http://www.davidjmcclelland.com/?p=1948#comments</comments>
		<pubDate>Mon, 13 Feb 2012 18:10:57 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Practice]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1948</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1948"><img class="alignnone size-full wp-image-1951" title="nodeBall" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/nodeBall.jpg" alt="" width="245" height="205" /></a>  or <a href="http://www.davidjmcclelland.com/?p=1948"><img class="alignnone size-full wp-image-1953" title="2-node" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/2-node.png" alt="" width="38" height="167" /></a> ... coping with the risk of a system-wide momentary critical failure.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/nodesComplexity.jpg" rel="shadowbox[sbpost-1948];player=img;" title="nodesComplexity"><img class="alignnone size-full wp-image-1952 colorbox-1948" title="nodesComplexity" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/nodesComplexity.jpg" alt="" width="268" height="188" /></a></p>
<p>The number of parties participating in a highly integrated development environment increases the risk of a momentary critical failure. I have taken some steps to build resilience to this so that I can keep coding through them.</p>
<div id="attachment_1950" class="wp-caption alignnone" style="width: 150px"><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/images-1.jpg" rel="shadowbox[sbpost-1948];player=img;" title="Cleacase Logo"><img class="size-full wp-image-1950 colorbox-1948" title="Cleacase Logo" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/images-1.jpg" alt="" width="140" height="138" /></a><p class="wp-caption-text">The Clearcase Logo design hints at the concurrency node issue</p></div>
<p>One step that has been very helpful was to create two local instances of the current project from version control. This serves two purposes: I am able to confirm that work I check in appears in the correct form on other peoples&#8217; instances by doing it myself, and I am able to switch to my &#8220;backup&#8221; instance when an update breaks my project.</p>
<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/nodeBall.jpg" rel="shadowbox[sbpost-1948];player=img;" title="nodeBall"><img class="alignnone size-full wp-image-1951 colorbox-1948" title="nodeBall" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/nodeBall.jpg" alt="" width="245" height="205" /></a>&nbsp; or&nbsp;<a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/2-node.png" rel="shadowbox[sbpost-1948];player=img;" title="2-node"><img class="alignnone size-full wp-image-1953 colorbox-1948" title="2-node" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/2-node.png" alt="" width="38" height="167" /></a></p>
<p>Another practice is really a side-effect of an unintended consequence of continuous integration. I am very reluctant to check in code unless I am very confident that it won&#8217;t break something. This defeats one of the purposes of version control: to provide journalled increments of work.</p>
<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/svnLogo.jpg" rel="shadowbox[sbpost-1948];player=img;" title="svnLogo"><img class="alignnone size-full wp-image-1954 colorbox-1948" title="svnLogo" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/svnLogo.jpg" alt="" width="84" height="74" /></a></p>
<p>I have started using a personal version control system as I develop towards a working milestone that I can check in to the main development stream. Fortunately, I have a development sandbox I can work in that is independent of the main development stream so this work can build against a stable, simplified environment that is always &#8220;up&#8221;. Still feels dysfunctional though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1948</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise Flex Tools: IntelliJ IDEA</title>
		<link>http://www.davidjmcclelland.com/?p=1929</link>
		<comments>http://www.davidjmcclelland.com/?p=1929#comments</comments>
		<pubDate>Fri, 10 Feb 2012 19:44:51 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Practice]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[cool tools]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1929</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1929"><img class="alignnone  wp-image-1938" title="Intellij Idea" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/images.jpg" alt="" width="80" height="80" /></a><br/> I assumed Enterprise meant you installed the Flash Builder plugin in your existing Eclipse instead of getting Flash Builder standalone. Wrong!]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone  wp-image-1938 colorbox-1929" title="Intellij Idea" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/images.jpg" alt="" width="115" height="115" /></p>
<p>I had never heard of this IDE until very recently. I assumed Enterprise meant you installed the Flash Builder plugin in your existing Eclipse instead of getting Flash Builder standalone.</p>
<p>Everyone calls <a href="http://www.jetbrains.com/idea/" target="_blank">Idea IntelliJ</a> because, let&#8217;s face it- they probably think they made a clever play on &#8220;IDE&#8221; but no-one knows what you&#8217;re talking about if you refer to it by the product name. &#8220;What version of Idea are you using?&#8221;</p>
<p>So why use IntelliJ instead of <a href="http://www.adobe.com" target="_blank">Builder</a>, <a href="http://fdt.powerflasher.com/" target="_blank">FDT</a>, <a href="http://www.flashdevelop.org/" target="_blank">FlashDevelop </a>or <a href="http://www.eclipse.org/" target="_blank">Eclipse</a>? The short answer is that it kicks Eclipse&#8217;s butt in performance, usability and actual capability. Builder&#8217;s too, If you aren&#8217;t concerned about editing MXML layouts visually and Adobe product integration. It is a very nice, well-thought-out tool that has all the hooks needed to fit into almost any enterprise setting that uses typical Java/OSS middleware and almost any version control system.</p>
<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/mercurialProjectStart.png" rel="shadowbox[sbpost-1929];player=img;" title="mercurialProjectStart"><img class="alignnone  wp-image-1931 colorbox-1929" title="mercurialProjectStart" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/mercurialProjectStart.png" alt="" width="320" height="120" /></a></p>
<p>If you want to try before you buy you can download a trial of the Ultimate Edition. The free Community Edition does not have the MXML/Actionscript plug-in. I might post more on this as I learn more about it.</p>
<p>&nbsp;</p>
<p>Here&#8217;s a cool feature I found recently: IntelliJ can make panels semi-opaque when they lose focus so you can still monitor them while coding:</p>
<p>&nbsp;</p>
<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/intellijFeature.png" rel="shadowbox[sbpost-1929];player=img;" title="intellijFeature"><img class="alignnone size-medium wp-image-1939 colorbox-1929" title="intellijFeature" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/intellijFeature-300x97.png" alt="" width="300" height="97" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1929</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confessions of a New Enterprise Flex Dev Part 2</title>
		<link>http://www.davidjmcclelland.com/?p=1932</link>
		<comments>http://www.davidjmcclelland.com/?p=1932#comments</comments>
		<pubDate>Wed, 08 Feb 2012 19:56:22 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Practice]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1932</guid>
		<description><![CDATA[<h2><a href="http://www.davidjmcclelland.com/?p=1932"><img class="alignnone size-full wp-image-1934" title="mevatar" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/mevatar.jpg" alt="" width="72" height="191" /></a></h2>
6 Challenges &#038; Advantages of Working in an Enterprise Framework
<ol>]]></description>
			<content:encoded><![CDATA[<h2><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/mevatar.jpg" rel="shadowbox[sbpost-1932];player=img;" title="mevatar"><img class="alignnone size-full wp-image-1934 colorbox-1932" title="mevatar" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/mevatar.jpg" alt="" width="72" height="191" /></a></h2>
<h2>6 Challenges/Advantages working in an Enterprise Framework:</h2>
<ol>
<li>I am trapped in someone else&#8217;s code and conventions forever.</li>
<li>I don&#8217;t know if I broke it or someone else did &#8211; or maybe I just found a bug in the framework.</li>
<li>Answering how long something will take to complete will always be wildly inaccurate based on factors outside my control (double-edged, that one).</li>
<li>There is always more to know than I can discover in the duration of the project.</li>
<li>There is always someone who knows more about something/everything than I do and can unintentionally make me look like a dullard to the other engineers.</li>
<li>I have to ask lots of stupid questions or look like a dullard to management too.</li>
</ol>
<h2>&#8230;here are some benefits:</h2>
<ol>
<li>Learning a ton about highly-integrated development practices and tools which apply anywhere</li>
<li>Learning some best practices and theory from OPC that is actually pretty good</li>
<li>I don&#8217;t have ridiculous, unrealistic deadlines</li>
<li>Practicing the art of filtering and sift what I need to know- a good management skill</li>
<li>Being surrounded&nbsp;by very capable people who I am encouraged to learn from raises my game</li>
<li>My self-confidence is rooted in something other than what I did lately, my ego is shrinking.</li>
</ol>
<h2>Hopeful Signs</h2>
<p>Today I found out that a tweening routine I built on top of a panel resize was not the source of a locking bug when rapid-clicking it &#8211; it was &nbsp;the framework. Another developer came by and asked if she could use my code for something because it worked better than what she had so far. Yesterday I found that the reason remote data wasn&#8217;t painting on my panel was my error-checking was working correctly and the remote data was garbage.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1932</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confessions of a new Enterprise Flex Developer, Part 1</title>
		<link>http://www.davidjmcclelland.com/?p=1917</link>
		<comments>http://www.davidjmcclelland.com/?p=1917#comments</comments>
		<pubDate>Tue, 07 Feb 2012 16:05:54 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Practice]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[practice]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1917</guid>
		<description><![CDATA[<a href="http://www.davidjmcclelland.com/?p=1917"><img class="alignnone size-thumbnail wp-image-1925" title="apacheFlex" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/apacheFlex-150x150.jpg" alt="" width="150" height="150" /></a>

I recently started working on an enterprise Java/Flex UI development project. (Yes these are still happening.) What's <i>that</i> like Dave?]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/apacheFlex.jpg" rel="shadowbox[sbpost-1917];player=img;" title="apacheFlex"><img class="alignnone size-thumbnail wp-image-1925 colorbox-1917" title="apacheFlex" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2012/02/apacheFlex-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>I recently started working on an enterprise Java/Flex UI development project. (Yes these are still happening.)</p>
<p>I came into the middle of the project, and I am completely submerged in an unfamiliar custom framework intertwined with services and other magical things like java2as. I am using new/unfamiliar tools for coding, versioning, compiling, serving, publishing and terminology &#8211; a complete rip-and-replace.</p>
<p>The design intent is to provide abstraction so that ui development can proceed hewing to a common goal with the data side. Abstraction without a contract results in complicit drift on both sides. it is a sometimes terrifying way to start a new job in an unfamiliar landscape.</p>
<h2>Why?</h2>
<ul>
<li>Because I am developing to a spec I know is incomplete and untestable, and will be changing it in the near future while I am supposed to be working on something else. And that something else will probably be in the same condition.</li>
<li>Because everyone else is in the same boat already and is too busy scrambling to provide the kind of support warranted to get someone from outside the organization up to speed.</li>
<li>Because figuring out if something isn&#8217;t working is because of something I did, didn&#8217;t do, is because the dev server is down, is just not implemented on the data side, is a server issue, a security issue, or some unknown issue is very difficult and time-consuming.</li>
</ul>
<p>More posts on the positives coming soon, I promise : )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1917</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where and What Version is Flash Player?</title>
		<link>http://www.davidjmcclelland.com/?p=1893</link>
		<comments>http://www.davidjmcclelland.com/?p=1893#comments</comments>
		<pubDate>Tue, 27 Dec 2011 14:34:27 +0000</pubDate>
		<dc:creator>David J McClelland</dc:creator>
				<category><![CDATA[Techniques]]></category>

		<guid isPermaLink="false">http://www.davidjmcclelland.com/?p=1893</guid>
		<description><![CDATA[A few tips on a common, potentially frustrating task.]]></description>
			<content:encoded><![CDATA[<p>A few tips on a common, potentially frustrating task.</p>
<p>Windows only: Open a command window and enter</p>
<p><code>ftype ShockwaveFlash.ShockwaveFlash</code></p>
<p>You will get the path to the current default player:</p>
<div id="attachment_1909" class="wp-caption alignnone" style="width: 160px"><a href="http://www.davidjmcclelland.com/etc/wp-content/uploads/2011/12/CLI_FlashPlayer.png" rel="shadowbox[sbpost-1893];player=img;" title="Path to Flash Player"><img class="size-thumbnail wp-image-1909 colorbox-1893" title="Path to Flash Player" src="http://www.davidjmcclelland.com/etc/wp-content/uploads/2011/12/CLI_FlashPlayer-e1324997564129-150x74.png" alt="Path to Flash Player" width="150" height="74" /></a><p class="wp-caption-text">Path to Flash Player</p></div>
<p>If you are using Ant and your project includes the task &#8220;set.flashPlayer.location&#8221;, you can call a project-specific player target like this:</p>
<table>
<tbody>
<tr>
<td style="width: 240px;" scope="row" align="left"><code>ant -DflashPlayer.location=</code><br />
<code>C:\\my_flash_location\\Players\\FlashPlayer.exe set.flashPlayer.location</code></td>
</tr>
</tbody>
</table>
<p>Otherwise, you&#8217;ll need to use the ftype command to set this properly.  <strong>This is a permanent change.</strong>  Open a command prompt and type:</p>
<table>
<tbody>
<tr>
<td style="width: 240px;" scope="row" align="left"><code>ftype ShockwaveFlash.ShockwaveFlash=<br />
"C:\\flash_player_update_201002_flash10\\Players\\</code><code>FlashPlayer.exe" "%1"</code></td>
</tr>
</tbody>
</table>
<p>Note that I added carriage returns for visual clarity on this site &#8211; Paste these into a text editor and remove them if you plane to simply paste them in.</p>
<p>&nbsp;</p>
<p>If you have information on Linux and Macintosh equivalents, please share in comments below&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjmcclelland.com/?feed=rss2&#038;p=1893</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

