<?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>Appz &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/category/appz/feed" rel="self" type="application/rss+xml" />
	<link>https://jessewarden.com</link>
	<description>Software &#124; Fitness &#124; Gaming</description>
	<lastBuildDate>Wed, 06 Sep 2023 12:32:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://jessewarden.com/wp-content/uploads/2016/08/cropped-Lambda2-32x32.png</url>
	<title>Appz &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<link>https://jessewarden.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Viaas: Live &#038; Archived Video</title>
		<link>https://jessewarden.com/2009/09/viaas-live-archived-video.html</link>
					<comments>https://jessewarden.com/2009/09/viaas-live-archived-video.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Fri, 25 Sep 2009 14:07:28 +0000</pubDate>
				<category><![CDATA[Appz]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Personal]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=1802</guid>

					<description><![CDATA[Viaas: The best project I ever worked on, with the best client I&#8217;ve ever had. Â This is where my Agile Chronicles came from. The front-end portion I worked on was built using Flex. Â Congrats to the Third Iris team for launching! Here&#8217;s a video from Tuesday of Steve &#38; Paul showing off the application in [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://viaas.com/">Viaas</a>: The best project I ever worked on, with the best client I&#8217;ve ever had. Â This is where my <a href="http://jessewarden.com/2008/11/agile-chronicles-1-stressful.html">Agile Chronicles</a> came from. The front-end portion I worked on was built using Flex. Â Congrats to the Third Iris team for launching!</p>
<p><span id="more-1802"></span>Here&#8217;s a <a href="http://link.brightcove.com/services/player/bcpid41695772001?bclid=41486138001&amp;bctid=41338518001">video</a> from Tuesday of Steve &amp; Paul showing off the application in 5 minutes. Â There are a lot of cool things they don&#8217;t show, but this should give you the gist in a short time frame. Â Notice the camera is powered via the ethernet cable.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="486" height="412" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="flashObj" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="videoId=41338518001&amp;playerId=980795693&amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;servicesURL=http://services.brightcove.com/services&amp;cdnURL=http://admin.brightcove.com&amp;domain=embed&amp;autoStart=false&amp;" /><param name="src" value="http://c.brightcove.com/services/viewer/federated_f8/980795693" /><embed type="application/x-shockwave-flash" width="486" height="412" src="http://c.brightcove.com/services/viewer/federated_f8/980795693" flashvars="videoId=41338518001&amp;playerId=980795693&amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;servicesURL=http://services.brightcove.com/services&amp;cdnURL=http://admin.brightcove.com&amp;domain=embed&amp;autoStart=false&amp;" bgcolor="#FFFFFF" name="flashObj"></embed></object></p>
<p>Paul is the only developer I&#8217;ve met in my entire career who does accurate time estimations. Also, props to <a href="http://www.linkedin.com/pub/jonathan-miranda/11/b33/557">Jonathan Miranda</a> who took over for me and brought her to launch.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2009/09/viaas-live-archived-video.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>AIR App: Powerz &#8211; Play Dungeons &#038; Dragons 4th Edition Faster</title>
		<link>https://jessewarden.com/2009/09/air-app-powerz-play-dnd-faster.html</link>
					<comments>https://jessewarden.com/2009/09/air-app-powerz-play-dnd-faster.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Tue, 08 Sep 2009 19:19:32 +0000</pubDate>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Appz]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[Branding]]></category>
		<category><![CDATA[Business Process]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=1758</guid>

					<description><![CDATA[This is a long post, so I&#8217;ve provided a short version, and content links to relevant sections if you want to skip around. Short Version I&#8217;ve built an AIR application in my spare time using Flex that helps you play Dungeons &#38; Dragons 4th edition faster. It took 6 months in my spare time and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This is a long post, so I&#8217;ve provided a short version, and content links to relevant sections if you want to skip around.</p>
<p><strong>Short Version<br />
</strong></p>
<p><a href="http://jessewarden.com/archives/powerz/start-page-preview.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Powerz Start Page" src="http://jessewarden.com/archives/powerz/start-page-preview.jpg" alt="Powerz Start Page" align="left" /></a>I&#8217;ve built an <a href="http://adobe.com/products/air/">AIR</a> application in my spare time using <a href="http://adobe.com/products/flex/">Flex</a> that helps you play <a href="http://www.wizards.com/default.asp?x=dnd/4dnd/dndtestdrive">Dungeons &amp; Dragons 4th edition</a> faster.  It took 6 months in my spare time and cost around $50k to build, and $40 a month to maintain.</p>
<p><a href="http://powerzapp.com/screenshots.html">See</a> and <a href="http://powerzapp.com/download.html">download it here</a>.</p>
<p>It was created in response to my new players, who are tech saavy, having a slow time getting a game going.  I copied the design metaphor used in MMORPG games, as well as creating an online database via <a href="http://www.djangoproject.com/">Django</a> of user submitted content to help the process go faster, as well as supporting house rules.  In doing market research, I found my product is for a younger generation, and this makes it challenging to market.  I used an Iterative/Agile development process to ensure it got completed.</p>
<p>The app had 3 goals: make money, make our games quicker &amp; easier, and prove to myself I could execute.  I succeeded in the latter 2, and failed in the making money&#8230; so far.</p>
<p><span id="more-1758"></span></p>
<hr />
<p><strong>Contents</strong></p>
<ul>
<li><a href="#preface">Preface</a></li>
<li><a href="#introduction">Introduction: Why the need for Powerz?</a></li>
<li><a href="#thepowerofpowerbars">The Power of Power Bars</a></li>
<li><a href="#whyair">Why AIR?</a></li>
<li><a href="#whydjango">Why Django?</a></li>
<li><a href="#selfinflictediterations">Self-Inflicted Iterations</a></li>
<li><a href="#quicknoteonscrum">Quick Note on Scrum</a></li>
<li><a href="#schedule">Schedule</a></li>
<li><a href="#technicaldetails">Technical Details</a></li>
<li><a href="#flex3vs4">Flex 3 vs 4</a></li>
<li><a href="#libraries">Libraries</a></li>
<li><a href="#monkeypatches">Monkey Patches</a></li>
<li><a href="#developmentchallenges">Development Challenges</a></li>
<li><a href="#featurecasulaties">Feature Casualties</a></li>
<li><a href="#marketingandresearch">Marketing &amp; Research</a></li>
<li><a href="#targetaudience">Target Audience</a></li>
<li><a href="#triptodragoncon">Trip to Dragon*Con</a></li>
<li><a href="#failures">Failures</a></li>
<li><a href="#successes">Successes</a></li>
<li><a href="#conclusions">Conclusions</a></li>
</ul>
<p><a name="preface"></a><strong>Preface</strong></p>
<p><a href="http://powerzapp.com/screenshots/Power-Melee_Basic_Attack.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Melee Attack Power" src="http://powerzapp.com/screenshots/Power-Melee_Basic_Attack.jpg" alt="Melee Attack Power" align="left" /></a>I&#8217;ve spent my spare time the last 6 months building an AIR application called &#8220;<a href="http://powerzapp.com">Powerz</a>&#8220;.  Simply, it is an application that allows you to play <a href="http://www.wizards.com/default.asp?x=dnd/4dnd/dndtestdrive">Dungeons &amp; Dragons 4th edition</a> a lot quicker.  It was built in response to newer players hastily flipping back and forth through rule book pages, all the while lamenting how much easier it is to do this in <a href="http://worldofwarcraft.com">World of Warcraft</a>.</p>
<p>It also became a test for myself.  I wanted to see if I could release a product on my own, perhaps even turn a profit.  I&#8217;ve been attempting for 5 years to create an online version of D&amp;D, fueled by the wishful emails of those around the world who both managed to get their hands on alpha builds and validated my target market.  That, and I had recently become an advisor for a startup, so needed creditability that I had produced results in the product sphere as opposed to the service industry which I&#8217;m currently in (<a href="http://adobe.com/products/flex/">Flex</a> &amp; <a href="http://adobe.com/products/flash/">Flash</a> consulting/contracting).  I had just recently completed my first official Agile/<a href="http://aboutscrum.com/">Scrum</a> project getting a startup client to (*ahem* near) Alpha, and upon reflecting, knew I was now capable of releasing a real product on my own.</p>
<p><a name="introduction"></a><strong>Introduction: Why the need for Powerz?</strong></p>
<p>D&amp;D 4th edition was created, in my opinion, to cater to, what I call, the &#8220;WoW Generation&#8221;.  <a href="http://www.wizards.com/">Wizards of the Coast</a>, the company also responsible for <a href="http://www.wizards.com/magic/multiverse/default.aspx">Magic the Gathering</a>, owns the D&amp;D game.  They recognized that to gain broader appeal of a game traditionally challenging to learn and losing market share to video games, they needed to not only make it easier to learn and play, but also target this gaming demographic.  The new rules do just that.  They are easier to learn for those not inclined to &#8220;read a bunch of rules&#8221;, and the new power concept allows a gaming group to quickly ascertain how they can contribute to the group.</p>
<p><a href="http://powerzapp.com/screenshots/Power-Last_Ditch_Evasion.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Power - Last Ditch Evasion" src="http://powerzapp.com/screenshots/Power-Last_Ditch_Evasion.jpg" alt="Power - Last Ditch Evasion" align="right" /></a>The problem with the WoW gen&#8217;s, though, is that they grew up texting, and not only want, but EXPECT digital tools to be there, as well as cross device.  D&amp;D, at least currently, doesn&#8217;t totally work like that.  They have made great strides in years to provide online digital content, such as Character Builders, rules compendiums, and online magazines with exclusive content.  What&#8217;s funny to me is that the main goal for most of this content is to be printed to paper and used during gameplay.  If you want to use these tools strictly digitally, you can, but that wasn&#8217;t why they were made.  Ultimately, your still going to be using &#8220;real&#8221; books during gameplay.</p>
<p>When you have a background in <a href="http://en.wikipedia.org/wiki/Massively_multiplayer_online_role-playing_game">MMORPG&#8217;s</a>, or even just gaming on consoles, you look at rule books as primitive, and cumbersome, and ultimately, not as fun.  They, like me, know this problem has already been solved digitally.</p>
<p>What kept coming up as a hassle during gameplay with this new generation of gamers was referencing their character&#8217;s powers, the main crux of 4th edition rules.  I figured if I could solve this problem digitally, I&#8217;d be onto something special.  I knew I couldn&#8217;t solve everything; I&#8217;d tried multiple times in the past to digitize the entire D&amp;D experience, and I simply didn&#8217;t have enough resources to pull that off.  For a digital power bar, however, I didn&#8217;t need a lot of resources&#8230;</p>
<p><a name="thepowerofpowerbars"></a><strong>The Power of Power Bars</strong></p>
<p><a href="http://jessewarden.com/archives/powerz/powerz-bar-preview.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Powerz Bar Preview" src="http://jessewarden.com/archives/powerz/powerz-bar-preview.jpg" alt="Powerz Bar Preview" align="left" /></a>If you&#8217;ve ever played <a href="http://worldofwarcraft.com">World of Warcraft</a>, <a href="http://starwarsgalaxies.com">Star Wars Galaxies</a>, <a href="http://ddo.com">DDO</a>, or any other Massively Multiplayer Online Role Playing Game, they have the concept of a power bar.  There are a series of slots on the bottom, like a horizontal list in Flex, and in each you can drop a power into.  It&#8217;ll be represented as a little image icon that infers what the power does.  Upon rolling over them, they provide details of what they do.  Upon clicking them, you use them.  While veteran players use keyboard shortcuts and macros, this GUI concept is the core to most MMORPG&#8217;s today.  Players familiar with such games &#8220;get it&#8221;, just like you and I understand to click &amp; drag on a scroll bar to scroll text.</p>
<figure style="width: 387px" class="wp-caption aligncenter"><a href="http://jessewarden.com/archives/powerz/powerbar-wow.jpg"><img decoding="async" src="http://jessewarden.com/archives/powerz/powerbar-wow.jpg" alt="World of Warcraft Power Bar" width="387" height="32" /></a><figcaption class="wp-caption-text">World of Warcraft Power Bar</figcaption></figure>
<p>This interface element is important because in MMO&#8217;s, those powers, while forming the crux of the 2 most important aspects in those games, chatting &amp; fighting, they also serve another subtle purpose.  RPG games in general are technical.  They basically take a lot of math, specifically ratio&#8217;s &amp; percentages, and personify the results through the use of chance.  While neat from a geek perspective, newbie players, especially those not tech saavy, can get overwhelmed by information overload.</p>
<p><a href="http://jessewarden.com/archives/powerz/powerbar-ddo.jpg"><img decoding="async" class="aligncenter" title="Dungeons &amp; Dragons Online Power Bar" src="http://jessewarden.com/archives/powerz/powerbar-ddo.jpg" alt="" width="393" height="42" /></a></p>
<p>Just like how Word hides non-frequently accessed information in menu&#8217;s that reveal, so to do MMORPG&#8217;s &#8220;reveal&#8221; information when the user requests it.  Additionally, since these interface elements are actually over top of a 3D virtual world, they need to be as non-intrusive as possible.</p>
<p><a href="http://jessewarden.com/archives/powerz/powerbar-swg.jpg"><img decoding="async" class="aligncenter" title="Star Wars Galaxies Power Bar" src="http://jessewarden.com/archives/powerz/powerbar-swg.jpg" alt="" width="348" height="36" /></a></p>
<p>In short, they provide the user with the ability to learn what their character can do, when she/he can do it, all using a mnemonicÂ device of visual icons that relate to the action in a non-intrusive interface.</p>
<p><a name="whyair"></a><strong>Why AIR?</strong></p>
<p><a href="http://adobe.com/products/air/"><img decoding="async" style="padding-right: 4px;" title="Adobe AIR" src="http://jessewarden.com/archives/powerz/adobe_air.jpg" alt="Adobe AIR" align="left" /></a><a href="http://jessewarden.com/2007/06/what-rhymes-with-air-i-dont-care.html">I&#8217;ve bashed her in the past</a> andÂ got shot down by desktop developers who came out of the wood work. Â ToÂ this day I still don&#8217;t get clients asking me to build AIR apps. Â Regardless, it was a pretty clear choice as to why I needed AIR: offline capability to run Flex apps.</p>
<p>You can play D&amp;D ANYWHERE.  I&#8217;ve played at friends houses, at a <a href="http://www.turkey-creek.com/">camp site</a> deep in the woods, on a plane, a bus, etc.  All of these places don&#8217;t always have internet.  Nowadays with wireless and cell phones that have decent coverage, you can <a href="http://9to5mac.com/iPhone-3G-tethering">tether</a> on your device to ensure you have an internet connection just about everywhere.  &#8220;Just about&#8221; isn&#8217;t good enough; if you can&#8217;t use it, or it&#8217;s a spotty connection, you view the &#8220;<a href="http://en.wikipedia.org/wiki/Cloud_computing">cloud</a>&#8221; as holding your data hostage vs. some benevolent caretaker.</p>
<p>So, I didn&#8217;t want an internet connection to be a requirement, and thus, targeted AIR vs. a web browser.  If you know me, using the Flex SDK was a no-brainer.  If you don&#8217;t, here&#8217;s the run down:</p>
<ol>
<li>Needs to work on as many platforms as possible.  AIR works on most PC, Mac, and enough Linux distros.  I use a Mac mostly, my gaming group uses Linux and Windows.  The Character Builder for DDi works on a PC with .NET.  Using <a href="http://www.codeweavers.com/products/">CrossOver</a> or <a href="http://www.parallels.com/">Parallels</a> isn&#8217;t cheap.  Buying an OS + emulation software when you already have a working computer is lamesauce.</li>
<li>Writing my own component framework is time consuming.  It took me 6 months to build <a href="http://code.google.com/p/shurikencomponents/">Shuriken</a> for Flash Lite 2, I&#8217;m still working on <a href="http://code.google.com/p/coreplay/">CorePlay</a> for pure AS3&#8230; so if I ended up doing that, I&#8217;d spend all my time on developing code to develop code vs. finishing my product.  Flex has all the components &amp; styling features I need, Flex 4 more so.</li>
<li>I make my living developing in Flex Builder.  This is what I&#8217;m most comfortable, and thus productive in.</li>
</ol>
<p><a name="whydjango"></a><strong>Why Django?</strong></p>
<p><a href="http://djangoproject.com"><img decoding="async" style="padding-right: 4px;" title="Django Project" src="http://jessewarden.com/archives/powerz/django_logo.gif" alt="Django Project" align="left" /></a>Once I personally started using Powerz in my game sessions, taking her for a test run with my gaming group, a new problem arose: setup time.  While battles finally went a lot faster, and focused more on strategy and chaos vs. wtf can I do, actually STARTING to play took awhile.  Players had to manually input the powers from the Players Handbook into Powerz.  Without <a href="http://en.wikipedia.org/wiki/Optical_character_recognition">OCR</a>, this is a lot of meticulous hand typing. Â This included those who played with made up house rules.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-login.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Login" src="http://jessewarden.com/archives/powerz/Community-login.jpg" alt="Community Login" align="right" /></a>I thought, why couldn&#8217;t we do something like the CDDB days of old?  <a href="http://en.wikipedia.org/wiki/CDDB">CDDB</a> was an online database where people would submit CD track lists.  That way, when you turned a CD into MP3&#8217;s, it automatically filled out the song names and album name for you. Â By the time it got popular, most CD&#8217;s were in the database so you didn&#8217;t need to submit them yourself.  This was the first Web 2.0 (aka the read-write web) phenomenon that I remember.  Basically you are leveraging the community, much like <a href="http://wikipedia.com">Wikipedia</a> leverages the knowledge from every contributor in the world.  This is a double-edged sword, as sometimes CDDB would have incorrect data without an easy way to change it.  Wikipedia has had its fair share of drama about article authenticity, and who defines the truth when multiple authors disagree about the same topic.</p>
<p>Regardless, both are using the forces of good, and showcase how leveraging community input can greatly benefit the masses.  Two heads are better than one, and thousands are just f&#8217;ing awesome.</p>
<p>I set out to build an online database of powers so when one person submitted it, everyone else could use it. Â The most common ones, say all 1st level ones for all classes, would be ready to go.  That way, even new players could quickly get up to speed.  Powerz is supposed to speed up gameplay, and this would be the final lynchpin.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-main.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Main" src="http://jessewarden.com/archives/powerz/Community-main.jpg" alt="Community Main" align="left" /></a>I hate, and suck, and server-side anything.  I&#8217;d argue the majority of arguments, philosophical debates, and technical podcasts about software are regarding server-side development (iPhone apps aside).  When people talk about <a href="http://martinfowler.com/articles/injection.html">Inversion of Control</a>, server clustering, or <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect Orientated Programming</a>, my eyes glaze over, I <a href="http://jessewarden.com/archives/facepalm.jpg">face palm</a>, and am like, &#8220;Wow&#8230; that&#8217;ll solve like 10% of my problems.  That 10% is on the server&#8230; WHERE MY CODE ISN&#8217;T RUNNING!&#8221;  To be fair, the majority of all cool software is running on the server.  Most Flex apps I&#8217;ve written are merely pretty faces for pimp server-side action.  The problem with server-side stuff is that you can&#8217;t see it.  I&#8217;m a visual person, I went to art school, and if I can&#8217;t see it, to me it&#8217;s boring.  I like seeing visual results from my coding efforts, and no, logging statements don&#8217;t count.</p>
<p>So&#8230; I knew I was in trouble with my idea.  Every time in the past I had such an idea, I merely turned to <a href="http://php.net">PHP</a>, since finding good server devs looking to work for free is really hard.  PHP is available on just about every web host, for free, and there are a lot of resources out on the internet for it.  It&#8217;s also very similar in syntax to ActionScript, so learning it was easy.  The problem is, I&#8217;m not &#8220;in&#8221; the PHP community. Â Creating a user account system may seem like a reasonable programming task to me, but an ignorant waste of time to a veteran PHP programmer who has used <a href="http://framework.zend.com/?fle=Adobe">Zend</a> or <a href="http://drupal.org/">Drupal</a> on many projects.  Most of my endeavors into larger PHP systems have failed because the workload was just to large for me to tackle both the front and back-end.  I knew this time I HAD to find whatever framework others were using for a user account system.  I&#8217;ve failed to find like-minded server-side developers in the past for such ideas.  I actually had a friend offer his services for this very project, but I was concerned I might actually make money, and I make a rule of not mixing friends and business.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-01.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Powers Search Results" src="http://jessewarden.com/archives/powerz/Community-01.jpg" alt="Community Powers Search Results" align="right" /></a>However, I had just got off a <a href="http://www.djangoproject.com/">Django</a> project.  Having spent 5 years or so evangelizing <a href="http://amfphp.org/">AMFPHP</a>, yet never actually successfully getting native object passing working, I decided I&#8217;d see how easy it was in Python.  Additionally, my experiences using Django&#8217;s user administration interface along with <a href="http://pyamf.org/">PyAMF</a> Flex integration was a very pleasant experience.  Since I&#8217;d already taking a look at Ruby on Rails awhile ago, I figured I&#8217;d give Python a chance.</p>
<p>Best decision ever.</p>
<p>I don&#8217;t know Terminal, my SQL knowledge equates to SELECT * FROM *, and I&#8217;ve never coded Python before.  Django is the shit.  It&#8217;s so easy, I learned my way around Terminal enough to not only &#8220;run a local server&#8221; (I know, right?), sync my database, and even play with <a href="http://www.python.org/">Python</a> code, just like <a href="http://adobe.com/products/director/">Director&#8217;s</a> message window.  I even learned how to remote ssh into my production server, install PyAMF remotely, and deploy my code.  Django is merely a framework atop of Python, but you have to know all that insane crud just to do it.  Oh yeah, and I ended up buying <a href="http://macromates.com/">TextMate</a> (in part to <a href="http://twitter.com/kristoferjoseph">Kristofer&#8217;s</a> recommendation) to use for coding Python.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-02.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Characters Search Results" src="http://jessewarden.com/archives/powerz/Community-02.jpg" alt="Community Characters Search Results" align="left" /></a>Speaking of Python, it&#8217;s a LOT like ActionScript 1.  Really strange going back to loose typing.  Unfortunately, the only real benefit I found was more succinct code.  The Aspect Orienated/<a href="http://en.wikipedia.org/wiki/Functional_programming">Functional</a> stuff that uses the <a href="http://en.wikipedia.org/wiki/Python_syntax_and_semantics#Decorators">Decorator pattern</a> with metadata tags for designating what methods require the user to be logged in only works for more recent builds of Python.  Still&#8230; I got it and think its hawt.  Additionally, the fact that you can import just a method of a class and use it is neat.  There&#8217;s been a request on an unnamed list requesting ActionScript 3 get this ability so when you import 1 method of a library, you don&#8217;t end up importing the whole library, and thus incur the file size penalty.  Since SWF is for web, this makes a lot of sense in investing in such a feature.  Python&#8217;s for loops?  Holy fish, advanced, and really cool stuff, way easier than doing similiar things in ActionScript 3 (faster? doubt it).  I still don&#8217;t get their slicing syntax, but I&#8217;m sure if I did it every day I would.</p>
<p>So why Django?  Within 3 days I had learned Python, Django, and PyAMF integration to have a working user authentication system working in my Flex app.  Blah blah blah&#8230; open source has no value&#8230; blah blah blah.</p>
<p>&#8230;I suck at debugging it, though, a friend told me to look into Python logging, but I just ran out of time&#8230; print print print OT OT OT.  That, and my admin only works on my local box, not the remote server&#8230; *ahem*.</p>
<p><a name="selfinflictediterations"></a><strong>Self-Inflicted Iterations</strong></p>
<p>All my personal projects suffered from the most common symptom that affects a lot of us software developers: starting new projects is ALWAYS more fun than finishing them.  You accrue a long list of awesome ideas that never make it to fruition.  Of those, a few you blog about.  Knowing this industry, a bunch are probably worthy of actually finishing and marketing because they&#8217;ll make bling&#8230; but&#8230; we&#8217;re a busy bunch.  That, or you see no point because you have no clue how to monetize them.</p>
<p>I&#8217;ve had this happen 3 times with my major D&amp;D online project in 5 years, 3 times with some games, and once with every other project that wasn&#8217;t specifically created FOR a blog entry since my career started.  I almost swore a blood oath before starting Powerz.  I didn&#8217;t really have too, though, because of circumstances.</p>
<p>First, I had just got off the best gig I&#8217;ve had in my entire career.  It was working for a startup as a service consultant through <a href="http://enablus.com/">Enablus</a>.  So, I make bling, but see $0 bling when they insanely succeed.  Quite the soul reflection project.  Second, I read a book called &#8220;<a href="http://www.amazon.com/Rich-Dad-Poor-Money-That-Middle/dp/0446677450/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1252451054&amp;sr=1-1">Rich Dad, Poor Dad</a>&#8221; upon a recommendation form <a href="http://www.dropthezero.com/">a friend</a>, and was then pissed for 3 weeks straight.  Third, I now knew how to do Agile development which was better than my made up iterative process of the past.  Fourth, D&amp;D 4th edition really is slow if you don&#8217;t know your powers by heart; it&#8217;s even worse for DM&#8217;s who have 50 billion other things to keep track of.  I needed this tool!</p>
<p>I made a simple rule.  If I was going to work on Powers, I needed to release SOMETHING a week from when I started.  If I grabbed a beer and started coding on a Friday night, there better be a new build, with associated forum post, WORKING up online the following Friday.  If I had something come up, like say real, paying work, or my kid(s) got sick, or whatever&#8230;. then 2 weeks. If that didn&#8217;t work because, say I only had 4 hours in a 2 week period, then I&#8217;d lock myself into finishing just one feature before I was allowed to work on anything else.</p>
<p>Failure was not an option.  To fail is to fail myself, and everything I stood for, and for those who listened to my blog entries full of &#8220;advice&#8221;.  If I did fail, it meant Agile didn&#8217;t work, and all <a href="http://jessewarden.com/2008/11/agile-chronicles-1-stressful.html">10 of those blog entries</a> I wrote espousing it were utter bullshit, and I needed to die in a fire.  Seriously.  After being so frustrated for so long about &#8220;figuring out&#8221; software development for the past 9 years, this was the line in the sand.  Pick your platform, pick your tool, pick your framework, and either put up, or shut up. Â Get something done vs. proselytizing about &#8220;how to program&#8221; with nothing to show for it.</p>
<p>In short, finish something I started.</p>
<p>6 months later, I&#8217;ve released version 1.0.  That feels f&#8217;ing good.  Really good.  That, and D&amp;D is easier to play now for me, and a lot of others.</p>
<p><a name="quicknoteonscrum"></a><strong>Quick Note on Scrum</strong></p>
<p>Remember, if you ever hear about this Agile or Scrum stuff, and are like, &#8220;Wtf?&#8221;, don&#8217;t stress.  All you need to know about using Scrum correctly is release working software with a new feature every week (or every 2 weeks).  That&#8217;s it, that&#8217;s all you need to do to be JXL Scrum compliant.  If you don&#8217;t do that, you should really take a look at what you are really trying to accomplish.</p>
<p>If you&#8217;re a manager who&#8217;s trying to implement it, and your developers keep going off on paths they weren&#8217;t assigned, play to their ego&#8217;s.  For example, if someone says, &#8220;I could write a login form in less than a day!&#8221;.  If it then takes them 8 days for the form to actually work, call them on it.  I guarantee you they&#8217;ll spout off about &#8220;OOP/Framework setup&#8221;, or some other lack-of-<a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself">DRY</a>-adherence excuse.  That&#8217;s ok; the point here is to show them that what they thought they could do, they didn&#8217;t actually execute on.  They&#8217;ll either re-assess what it really takes to develop even simple things, or you&#8217;ll come to a mutual understanding of what &#8220;working&#8221; really means.</p>
<p>I had to do that.  In 2001, I created a stock charting application in Flash 5, AS1 pre-#initclip days, knowing very little OOP, zero best practices, and no frameworks, in 1 month.  Today, that same application would take me 4 to 6 months, and cost 177% more per hour.  Granted, the devil is in the details (quality of user experience, less bugs, more features, I actually know what I&#8217;m doing now + have experience, etc), but that, to me, says something about my ability to execute.  Those in software know faster doesn&#8217;t mean better&#8230; but when you start splitting hairs about even simple features, you find some surprising things about yourself.  I call this, programmer self-awareness through Scrum.</p>
<p><a name="schedule"></a><strong>Schedule</strong></p>
<p>For those who are interested, here is how my schedule worked out.  When I mention a week, I&#8217;m speaking about a week of development time.  So, if I started coding on Friday night, but only put in 4 hours for an entire week&#8230; I certainly had very little to offer in a true build.  So, my first rule was, if I could do a week, do a week, and release.  If I couldn&#8217;t because I had real work to do, then I&#8217;d instead get 1 feature DONE and release.  This was still hard, because even if I could only devote like 2 hours a week to my personal project, it HAD to be on that one feature, and I had to force myself to finish it so I could get a build up, and move onto another.  It was far from perfect, but it&#8217;s as Scrum as I could get with my free time&#8230; and it guaranteed I&#8217;d release multiple builds with enough room for user feedback.</p>
<ul>
<li>First 3 weeks, spent designing &amp; doing initial prototyping (aka design phase in Waterfall).  I had no gig lined up, so worked 3 weeks straight on my own stuff.  I worked for about 7 days straight in Photoshop CS3.</li>
<li>Work 1 hour one night, 4 hours another, 8 maybe on a weekend, or perhaps none for 4 days in a row.  Bottom line, I still followed my weekly/bi-weekly/single feature release schedule.</li>
<li>One build took 6 weeks (Alpha 9 to Beta 1) because I had to learn Django and do real work at the same time.  Some weeks during that time, I only worked 1 to 2 hours per week, others, I&#8217;d work 3 days straight.</li>
<li>Some weeks were coding.  Some weeks were pure Photoshop.  Three weeks was learning/implementing Django.  Four weeks was setting up the website, porting all code &amp; assets to work on it, and installing all forum and blog software.  All was mixed amongst each other.  Since I was doing everything myself.</li>
<li>I did Analytics once in the beginning, and then changed it 2 weeks later when I couldn&#8217;t understand my own metrics.</li>
<li>Start Date: Around April 5th, 2009.</li>
<li>End Date: Hopefully September 26th, 2009.</li>
<li>Total Time: 6 months</li>
</ul>
<p>It&#8217;s hard for me to predict how long Powerz would of taken had I been able to spend 100% of my time on it.  A lot of things came up, positively &amp; negatively, during development that adversely affected the timeline.  Users asked for features, work flows I originally tried didn&#8217;t pan out, Photoshop designs took a few tries, and learning Django staggered overall development on the Community portion.  All I know is, Flex Builder 3 and Flex SDK 3.3 is foogin&#8217; solid for what I needed.</p>
<p><a name="technicaldetails"></a><strong>Technical Details</strong></p>
<p>The <a href="http://powerzapp.com">web site</a> is pretty standard stuff.  <a href="http://powerzapp.com/forum/">Forum</a> is <a href="http://www.phpbb.com/">PHPBB</a>, and blog is vanilla install of <a href="http://wordpress.org/">WordPress</a>.  Hopefully post 1.0 launch, I can modify the blog to match the rest of the site look and feel (excluding forum) via <a href="http://www.themedreamer.com/">the Dreamer</a>, an easier way to design WordPress sites via <a href="http://adobe.com/products/dreamweaver/">Dreamweaver</a>.  Her majesty used it for her site and it&#8217;s pretty cool. Â I also need to redo my <a href="http://jessewarden.com/projects/gamingtools/powerz/screencast/">dated screen cast</a>, and tons of other things.</p>
<p>While I did the original web site designs in <a href="http://adobe.com/products/photoshop/">Photoshop</a>, the site itself was done by her majesty and I in <a href="http://adobe.com/products/fireworks/">Fireworks</a>. Â Fireworks&#8217; text handling is superior to Photoshop&#8217;s, and now that CS4 shares the same font engine, you can get good looking interfaces. Â If Photoshop were to improve their text handling capabilities, I&#8217;d probably still use Fireworks for it&#8217;s easier object editing + grouping + moving functionality. Â For the web with lots of content, it was just quicker for me and her majesty.</p>
<p>For the video, shot using a <a href="http://www.amazon.com/Sony-DCR-SR200-Handycam-Camcorder-Optical/dp/B000M3GJKU/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1253188966&amp;sr=8-1">Sony DCR-SR200</a>, and edited in <a href="http://www.adobe.com/products/premiere/">Premiere</a> CS3 &amp; <a href="http://adobe.com/products/aftereffects/">After Effects</a> CS3. Â <a href="http://www.telestream.net/screen-flow/overview.htm">ScreenFlow</a> was used for demoing the software.</p>
<p><a name="flex3vs4"></a><strong>Flex 3 vs 4</strong></p>
<p>Yes, I very much wanted to use <a href="http://labs.adobe.com/technologies/flashbuilder4/">Flex 4</a>.  Unlike Flex 2 Alpha, however, she&#8217;s unstable and changes all the time.  You could build some pretty Enterprise stuff on Flex 2, Beta 1.  I would never do such a thing with Flex 4 just because she&#8217;s in such flux, and the IDE (+ <a href="http://labs.adobe.com/technologies/flashcatalyst/">Catalyst</a> builds) is somewhat flaky.  Obviously 6 months later things are more stable&#8230; but they still changed a lot (fx prefix, Halo interop, etc.).</p>
<p>I used Flex Builder 3 &amp; Flex SDK 3.2&#8230; then 3.3&#8230; then 3.4.  I use AIR 1.5.2.  AIR still has a bug where you can&#8217;t seem to use compc (aka Library Projects) because of some weird Vector bug in playerglobals.swc or something.  So I just gave up on using a library project.</p>
<p><a name="libraries"></a><strong>Libraries</strong></p>
<p>I have 1 Flex project, and a ton of libraries.  Ones of note are:</p>
<ul>
<li>Cliff Hall&#8217;s <a href="http://puremvc.org/">PureMVC</a></li>
<li>Ely&#8217;s <a href="http://www.quietlyscheming.com/blog/2007/01/23/some-thoughts-on-doubt-on-flex-as-the-best-option-orhow-i-made-my-flex-images-stop-dancing/">SuperImage</a> (that I <a href="http://jessewarden.com/2009/08/fix-for-elys-superimage.html">patched</a>)</li>
<li>Claus Wahlers&#8217; and Max Herkender&#8217;s <a href="http://codeazur.com.br/lab/fzip/">FZip</a> for reading &amp; writing my custom file formats</li>
<li>Christian Cantrell&#8217;s <a href="http://code.google.com/p/as3nativealertlib/">NativeAlert</a> ported to Flex</li>
<li><a href="http://code.google.com/p/gaforflash/">Google Analytics</a></li>
<li><a href="http://google.com/adsense">Google AdSense</a></li>
<li><a href="http://code.google.com/p/as3corelib/">as3corelib</a> for <a href="http://json.org">JSON</a>, used in reading &amp; writing custom file format</li>
<li>Adobe AIR Update framework (which refuses to GTFO of RAM) with custom badges written in Flash (zomg!)</li>
<li>my DebugMax window which is a lame attempt to copy that older Flash debug window (the Portuguese one)</li>
<li>&#8230;and Grden&#8217;s <a href="http://rockonflash.wordpress.com/2007/05/16/as3-localtolocal-and-coordinatetools/">localToLocal function</a></li>
<li>Server is running Django on Python, using PyAMF to send AMF objects back and forth. I&#8217;m only using one class; getting nested ValueObjects to work with inherited and one to many relationships in Django&#8217;s Models was nigh impossible to debug. Â For now, I just pass simple Objects which are uber-easy to parse.</li>
</ul>
<p>Blah blah blah&#8230; open source provides no value&#8230; blah blah blah.</p>
<p><a name="monkeypatches"></a><strong>Monkey Patches</strong></p>
<ol>
<li>Commented out a bunch ofÂ <a href="http://bugs.adobe.com/jira/browse/SDK-20784">InterManagerRequest</a> code in AIR&#8217;s NativeDragManagerImpl class. Doing drag operations would cause the app to lock up for 7 to 11 seconds. Not sure if this was fixed in 3.4, but I don&#8217;t load multiple Flex apps with different SDK versions, so don&#8217;t need this code.</li>
<li>Added bitmap smoothing in SWFLoader, which Flex SDK 3.4 (or 3.3 I forget which, added officially)</li>
<li>Added a numLines getter to Label for more accurate text height measurement&#8230; which I then later didn&#8217;t use. Â Proper invalidation fixed my measurement bug; text can be finicky, but if you wait a frame&#8230;&#8230;</li>
</ol>
<p><a name="developmentchallenges"></a><strong>Development Challenges</strong></p>
<p>There were 3 development challenges I faced.</p>
<p><a href="http://jessewarden.com/archives/powerz/Character-v2-preview.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Character" src="http://jessewarden.com/archives/powerz/Character-v2-preview.jpg" alt="Character" align="right" /></a>The first was developing in AIR.  If you are using Flex in AIR, it&#8217;s nearly the same thing.  The hard parts were learning how Windows work, and their quirks (such as when does Window REALLY get its reference to nativeWindow?).  How do you design for this as a designer, and what is an appropriate design metaphor?  Multiple windows, or 1 window with many states?  Also, event bubbling doesn&#8217;t work with windows, since each has it&#8217;s own stage, so there was a learning curve of when to manually re-dispatch, and when to just hand off to PureMVC Mediators.</p>
<p>The second was learning to work with reading and writing files.  The FileReference class is EASY, but there are actually 3 classes (really you just work with 2) for AIR.  They too have intricacies to learn, and how you can abstract them, and what the costs are in doing so.  What was fun to figure out was how to associate a file with a document window in the PureMVC framework.  I really had a tough time trying to tightly couple something when you&#8217;re technically not supposed to tightly couple anything in programming.</p>
<p>The third was creating a file format.  I believe most traditional developers would of used some sort of serialization via ByteArray and the <a href="http://livedocs.adobe.com/flex/3/langref/flash/utils/IExternalizable.html">IExternalizable</a> interface for your objects.  To me, that stuff takes a lot of work, and isn&#8217;t easy for me to debug, nor verify if it worked.  Maybe to those who think in 0&#8217;s and 1&#8217;s, but not me.  It took some tinkering; I copied how SWC works. Â SWC is a ZIP file with some XML and binary assets all inside.  My file formats are basically the same thing; a ZIP file with a JSON text file holding the serialized object, images for any icons, and a text file determining what type the file format is (since you can&#8217;t rely on file extension).  This allowed me to open up the file to see it&#8217;s contents and confirm my code worked as well as perusing the JSON to see if my objects serialized correctly.</p>
<p>What was great about being the only developer was that I was also the designer and back-end developer. Â I knew how to design assets for Flex and could predict what I&#8217;d need designed.  As the back-end developer, I could create data that the client would need, thus making my job easier in both places.</p>
<p><a name="featurecasulaties"></a><strong>Feature Casualties</strong></p>
<p>I had 2 features that caused major scope creep, and thus extended how long it took.  They weren&#8217;t a waste of time, but as with every project, I learned something.</p>
<p>The first was the whole &#8220;document editing process&#8221; that people are used to.  You open a file, edit it, save it if it&#8217;s dirty, and close the &#8220;document&#8221;.  If you &#8220;Save As&#8230;&#8221;, you create a new file, yet use same window.  I didn&#8217;t use this model at first.  Instead, I just opened files, kept a reference to the file handle for each AIR window, and removed it when the window closed.  However, this is not how every other desktop application works.  Additionally, for those on network drives, you couldn&#8217;t really work with the files easily when moving things since it always had an opened file handle.  So, it was a pretty big re-write/re-factoring effort to put this functionality &amp; work flow in.  I know how to do it now, but I&#8217;m just glad no one asked for undo yet. *whew*</p>
<p>The second was pimping out Christian&#8217;s NativeAlert window.  I spent 3 days in <a href="http://adobe.com/products/aftereffects/">AfterEffects</a> when I was between gigs creating a transition in and transition out for the window. Â Instead of just popping in, it&#8217;d &#8220;materialize&#8221; in, all magical like.  To me, and one of my users, it looked awesome.  It got old after 2 uses because you had to wait for it and there are a few alerts when saving files.  If I speed it up any, it loses fidelity&#8230; so I just removed it.  It required a lot of custom code to make the alert do it&#8217;s modality magic in time with the transition.  I didn&#8217;t get to use any of it.</p>
<div>
<p><object id="player" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="player" /><param name="allowfullscreen" value="true" /><param name="src" value="http://jessewarden.com/projects/gamingtools/powerz/oldalerts/preview/alert_skin.swf" /><param name="align" value="middle" /><param name="quality" value="high" /><embed id="player" type="application/x-shockwave-flash" width="450" height="400" src="http://jessewarden.com/projects/gamingtools/powerz/oldalerts/preview/alert_skin.swf" quality="high" align="middle" allowfullscreen="true" name="player"></embed></object></div>
<p><a name="marketingandresearch"></a><strong>Marketing &amp; Research</strong></p>
<p>This was the most interesting for me.  While I&#8217;m not a good salesman, I feel that I get online marketing and branding.  I also feel like I understand my target audience, since I&#8217;m part of that audience.  I actually did market research (aka learning my target audience and their needs) both at the start and during development.</p>
<p>I looked online and read about what WotC was offering, and then I looked at all the 3rd party offerings.  I took a few for a spin.  I read user reviews on forums and blogs, especially the passionate ones.  I wanted to gain a better understanding of what they liked about the software, and how they expected software to work.  There wasn&#8217;t really a pattern.  The bitching about lack of Linux/Mac support was low, and a lot of the 3rd parties utilized Java.  For those that didn&#8217;t, there we already well documented ways of installing a Windows emulator.</p>
<p>One thing that reading the forums did for me was really educate me on the current flux of the industry.  Technology really has changed, and continues to change, table top gaming.  WotC is in an interesting time of the market, and frankly I&#8217;ve think they&#8217;ve done a good job on positioning their D&amp;D brand &amp; rules for 4th edition to perform well with these changes.  Where they haven&#8217;t done entirely well is executing both their community aspects online, as well as delivering their associated digital tools.</p>
<p>The short version of WotC&#8217;s transition to the digital age is, as magazine sales declined, WotC first sold their magazines to <a href="http://paizo.com/">Piazo</a>, and later brought them back and incorporated them into their new online subscription service; they no longer print magazines.  You get the monthly magazines digitally, exclusive content, as well as access to their desktop and web tools.  There are good and bad things about this.  Some of their software isn&#8217;t released years later, but the ones that are are definitely nice.</p>
<p><a name="targetaudience"></a><strong>Target Audience</strong></p>
<p>I wrote something similar to this over a the <a href="powerzapp.com/blog/2009/09/ddis-character-builder-powerz.html">Powerz blog</a>. Â Bottom line, there is a lot of confusion, at least for me, on who really is the target demographic.  The high level view is that the older players prefer tangible rule books, whereas the younger ones are more apt to digital content.  That&#8217;s where the black and white views end.  Some from both groups are fine with digital content, but intend to transfer that content to paper in use in their games.  Others would prefer to wholly digital, yet still play in person with their friends; like a LAN party.</p>
<p>I intended to confirm this suspicion beyond just talking online&#8230;</p>
<p><a name="triptodragoncon"></a><strong>Trip to Dragon*Con</strong></p>
<p>&#8230;so I took a trip to <a href="http://dragoncon.org">Dragon*Con</a> 2009 this year.  I go every so often to stock up on new dice as well as to see the <a href="http://www.501st.com/">501st</a>.  My goal this year was to promote Powerz, and meet potential customers.  I knew it would be challenging for a few reasons.  First off, finding D&amp;D players is actually hard.  It&#8217;s a huge Sci-fi &amp; fantasy conference; it&#8217;s not solely for D&amp;D&#8217;ers.  Additionally, most D&amp;D&#8217;ers who do go play with their friends at predefined tables in a reserved hotel ballroom.  These are usually niche groups, and while friendly, you can&#8217;t just barge in on them in a middle of game.  If someone did that to me during mine, I&#8217;d be really ticked off.  Additionally, the conference itself is confusing because it&#8217;s spaced around 4 semi-adjoining hotels (Hilton, Marriott, Sheraton, etc.), and signage isn&#8217;t large/verbose enough for you to get a clear picture of where you are, nor what events are happening where.  I knew it&#8217;d be hard.  Her majesty helped set my expectations to a reasonable level.</p>
<p>My first attempt was while waiting in dice line (like a food large buffet, except there are different colored dice you can choose from).  One particular customer was taking awhile to get his transaction finished, and was in a TF2 spy costume (I think), so I figured he was a good target.</p>
<p>&#8220;Hey chief, you play D&amp;D?&#8221;</p>
<p>&#8220;Yeah!&#8221;</p>
<p>&#8220;Cool, you play 4th edition?&#8221;</p>
<p>&#8220;Naw, 3.5.&#8221;</p>
<p>*sigh*</p>
<p>I then asked the attendant who was waiting on customers, but he didn&#8217;t play, just pointed to one of his co-workers; but they were UBER busy.  Even <a href="http://vimeo.com/6553056">Solid Snake briefly came out of his box</a> to browse their wares.  I didn&#8217;t want to annoy every customer, so moved to another vendor booth, full of D&amp;D books.</p>
<p>A girl was just sitting down in a chair, and lamenting about how good it was to sit down.  Prime target.</p>
<p>&#8220;Hey, you play D&amp;D?&#8221;</p>
<p>&#8220;Yeah&#8230;&#8221;</p>
<p>&#8220;4th edition?&#8221;</p>
<p>Irritatedly, &#8220;Only because my group made me&#8230;&#8221;</p>
<p>&#8220;Rad, do you mind if you ask you a few questions about some software I&#8217;m building?&#8221;</p>
<p>Cautious, and body language suggesting she was about run at the slightest sign I was a vampire, &#8220;Ooookkkayy&#8230;.&#8221;</p>
<p>I sat down next to her on the floor to make her feel more comfortable with my laptop, and briefly walked her through why I created Powerz, and what it does.</p>
<p>She immediately got excited, &#8220;Oh we already use that through our DM.  He uses WotC&#8217;s subscription service&#8230; DD something&#8230;&#8221;</p>
<p>&#8220;DDO or DDi?&#8221;</p>
<p>&#8220;Yeah.&#8221;</p>
<p>&#8220;Which one?&#8221;</p>
<p>She shrugged but excitedly explained, &#8220;I don&#8217;t know, but it&#8217;s great.  You can input all of your character data, and it prints out all your powers.  Our whole group does it.&#8221;</p>
<p>I then proceeded to ask her questions about how her group plays, and take notes.  Another gent from her gaming group joined in on the conversation, and motioned to a 3rd member who was also browsing books nearby.  After I had asked my questions, I thanked them for their time&#8230; and went looking for a bar.  I suddenly felt insecure, &#8216;How could DDi do all that?  There is no way, I&#8217;ve seen the screen shots, read the reviews&#8230;.&#8217;</p>
<p>While waiting for the bar tender who was overworked, and was already getting heckled by some disgruntled women next to me, I reflected on those I had talked to.  I knew a lot of the older generation was very pro-3.5, me included.  I really like, still, the 3.5 rules and felt they were akin to Macromedia&#8217;s Flash 8; the pinnacle of the company.  I started getting really depressed, and quickly started going over all of my past research in my head.</p>
<p>&#8230;then I remembered something the girl had said.  &#8220;Print them out.&#8221;  Print?  To paper?  wtf?  A smile came to my face, I gave up waiting on the bartender, and quickly headed to where I remembered the D&amp;D gaming tables being the previous year.  I stopped by the bellman&#8217;s desk to obtain some change so I could buy a few people beers in exchange for me pestering them with questions.</p>
<p>Paper.  That was really what I kept seeing.  The generation gap in that one prefers tangible assets to play with and the younger ones do not.  Again, it&#8217;s not that black and white sometimes, but it&#8217;s still true.  While waiting 1 hour and 40 minutes in line, I met a father who had brought his 11 year old daughter to &#8220;meet&#8221; the creators of the online game she played.  It was some alternative to <a href="http://www.clubpenguin.com/">Club Penguin</a>,Â which was apparently ruined under new management.  She was really excited, and wanted to be a programmer when she grew up.  The father, clearly out of his element, saw me in my business professional getup, clearly over dressed for such a casual, and often costumed event, and seemed happy to have some one to talk to.  He found it strange that his daughter would spend his money on these online games for things that didn&#8217;t exist.  Instead of a new barbie doll, she&#8217;d get a some new, exclusive outfit for her online character.  We discussed her online habits, and those of her friends.  I explained what I did, and he was intrigued.</p>
<p>His daughter is my target audience.  The girls and boy in front of her, definitely early teens, one dressed up as <a href="http://en.wikipedia.org/wiki/Naruto">Naruto</a>, and others as <a href="http://en.wikipedia.org/wiki/List_of_InuYasha_characters#Sango">Sango</a> from InuYasha&#8230; those are my target audience.  They grew up texting, the internet always existed.  Those who were my age, dressed up as star trek characters&#8230; those probably aren&#8217;t my target audience.  These kids revel in online content, but still have social interactions with each other in person.</p>
<p>People like me, and the kids who are used to digital tools don&#8217;t mind <strong>keeping</strong> things digital.  Others see digital tools as a means to a paper end.</p>
<p>Upon leaving, I was convinced my target audience was mostly online and not at Dragon*Con&#8230; or at Dragon*Con WITH their PARENTS.  It was a great learning experience, even talking to the few people I did was helpful.</p>
<p><a name="failures"></a><strong>Failures</strong></p>
<p>The project as a whole, while successful, failed to meet one of its primary goals: make money.  It does have some successes, which I document below.  I had two main goals: releasing a product to prove I could execute, and to make money, enough to cover costs.  Currently, there is not enough community features to justify a subscription pricing model.  Additionally, I highly doubt I&#8217;ll get enough users to cover the costs via the ad supported model I use currently.</p>
<p>If you add up all the costs:</p>
<ul>
<li>Around 6 to 10 weeks of man hours (design, development, marketing + expenses)</li>
<li>hosting costs ($20 hosting + $20 Django container @ Mediatemple)</li>
</ul>
<p>The total comes to around $50,000.  Each month I go $40 more into the hole as the ads currently aren&#8217;t providing enough revenue to cover costs, and I haven&#8217;t figured out how to monetize the anonymous usage data.</p>
<p>I have a new idea that will actually generate revenue, and Powerz could actually be a companion application, so that&#8217;s a positive.</p>
<p>I&#8217;m not sure about this statement, but&#8230; here goes: I&#8217;m glad I know I&#8217;m capable of executing vs. knowing how to make money and not execute.  This, as opposed to someone who knows how to make money, but can&#8217;t execute.  The sad fact is, most rich people I read about know how to make money, and get other more qualified individuals to execute for them. Â Doh!</p>
<p>As a developer, however, I view this as yet another thing to learn, so that&#8217;s a good thing!  If I start learning how to monetize things better, I can focus my development efforts on what matter monetarily, and eventually find easier ways to leverage help vs. doing everything myself.  If at first you don&#8217;t succeed, try, try again.</p>
<p><a name="successes"></a><strong>Successes</strong></p>
<p>My favorite part, the wins.</p>
<ol>
<li>I now have a tool to make my D&amp;D gaming easier, and more fun.</li>
<li>Others now have access to the same tool, with the ability to help guide it&#8217;s direction.</li>
<li>I&#8217;ve proved to myself for the 2nd time that <a href="http://en.wikipedia.org/wiki/Iterative_and_incremental_development">Iterative development</a> works.</li>
<li>I&#8217;ve proved to myself that I can execute on my ideas.</li>
<li>I learned Django &amp; Python, and also learned not to hate the server-side.</li>
<li>I&#8217;ve learned, again, how much work it really takes beyond just coding to release a product.</li>
<li>I learned a little bit about engaging potential customers.</li>
<li>I learned a little bit about market research.</li>
<li>I learned how NOT to migrate data.</li>
<li>I now have something new to learn: How to make money with software.</li>
</ol>
<p><a name="conclusions"></a><strong>Conclusions</strong></p>
<p>While I&#8217;m disappointed I failed to monetize my work, it&#8217;s still early in the game, so maybe I&#8217;ll think of something.  Overall, I&#8217;m really happy to have finally finished one of personal projects into an actual product.  That, and I learned a ton. Soon, onto idea #2!</p>
<p>If you play D&amp;D 4th edition, check it out and let me know what you think.  If you don&#8217;t, but know people who do, let &#8217;em know; I&#8217;d be most appreciative!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2009/09/air-app-powerz-play-dnd-faster.html/feed</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Mix n Mash 2k7, Bill Gates, Web, Blend, and Silverlight</title>
		<link>https://jessewarden.com/2007/12/mix-n-mash-2k7-bill-gates-web-blend-and-silverlight.html</link>
					<comments>https://jessewarden.com/2007/12/mix-n-mash-2k7-bill-gates-web-blend-and-silverlight.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Thu, 13 Dec 2007 05:58:55 +0000</pubDate>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Appz]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Thermo]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">http://jessewarden.com/2007/12/mix-n-mash-2k7-bill-gates-web-blend-and-silverlight.html</guid>

					<description><![CDATA[I had the honor of being 1 of the lucky 10 invited to attend the Mix n Mash 2007 event held by Microsoft. This is the 2nd one. It&#8217;s an event where they invite you to Microsoft&#8217;s HQ to see what they are working on, give feedback, and meet Bill Gates. Here&#8217;s a picture of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I had the honor of being 1 of the lucky 10 invited to attend the Mix n Mash 2007 event held by <a href="http://www.microsoft.com">Microsoft</a>.  This is the 2nd one.  It&#8217;s an event where they invite you to Microsoft&#8217;s HQ to see what they are working on, give feedback, and meet Bill Gates.</p>
<p>Here&#8217;s a picture of the Mix n Mash invited attendee&#8217;s getting their picture taken with Bill Gates (I somehow got in there, booya!)</p>
<p><a href="http://jessewarden.com/archives/EBC_MIXnMASH_-_BillG_01_MS_12_2007.jpg"><img decoding="async" src="http://jessewarden.com/archives/EBC_MIXnMASH_-_BillG_01_MS_12_2007_small.jpg" width="460" /></a></p>
<p>From left to right:</p>
<p><a href="http://snook.ca/jonathan/">Jonathan Snook</a>, <a href="http://www.thedatafarm.com/blog">Julie Lerman</a>, <a href="http://www.gotomobile.com/">Kelly Goto</a>, <a href="http://weblogs.asp.net/rhoward/">Rob Howard</a>, <a href="http://microsoft.com">Bill Gates</a>, <a href="http://molly.com">Molly Holzschlag</a>, <a href="http://www.liveside.net/">Kip Kniskern</a>, Jesse Warden (me!), <a href="http://www.bit-101.com/">Keith Peters</a> and <a href="http://jot.eriknatzke.com/">Erik Natzke</a></p>


<span id="more-1217"></span>


<p>Last year&#8217;s event apparently had a lot of designers who thought the <a href="http://www.silverlight.net">Silverlight</a> content was really over their head.  So, this year, they has 2 tracks; 1 designer track and 1 developer track.  I told Tim (Microsoft&#8217;s <a href="http://www.onflex.org/ted/">Ted Patrick</a>) that I wanted to go to both.  In the end I had to choose one.  I planned on going to the developer one because I wanted to give the community a play by play of the features Silverlight 2 will have and do a fair comparison with <a href="http://www.adobe.com/platform/flash/">Flash Player</a> 9 &amp; 10.</p>
<p>However, after about 5 virgin fruit punches at <a href="http://www.tradervics.com/">Trader Vics</a>, I was really hyped up after talking to various Microsoft employee&#8217;s.  I believe they are doing everything right with Silverlight, and tons wrong with Blend.  After draining every employee I could meet of info, I decided the next morning I&#8217;d hit the design track instead.  The 4 of us got to meet some of the designers and dev&#8217;s working on <a href="http://www.microsoft.com/expression/products/overview.aspx?key=web">Web</a> and <a href="http://www.microsoft.com/expression/products/overview.aspx?key=blend">Blend</a>.</p>
<p>This career histories&#8217; these dev&#8217;s have is just unreal.  If I&#8217;m 80, and can talk even a 100th of how they talked about where they worked, what they worked on, and how those projects affected them, I&#8217;ll feel confident I enjoyed my career.  I&#8217;m not really sure how in the hell I got invited into a small, informal room to talk shop with these pro&#8217;s.  Yet, the informal nature made it damn fun.  Free coffee was pimp, too!</p>
<p>Web seemed like Microsoft&#8217;s version of Dreamweaver.  Clean, well laid out, and the focus of the conversation was about integrating a good set of CSS features to help raise the bar for the industry.  Apparently there is tons of CSS done horribly wrong.  They had some cool ideas, and I&#8217;m sure we only heard 5% of all of them.  At first, I just listened to <a href="http://snook.ca/jonathan/">Snook</a> and <a href="http://molly.com">Molly</a>.  They are both smart, so just absorbing the dialogue was rad.  As they started to show PHP code hinting, and SWF embedding, I felt it was my duty to step up.  I got shot down pretty quickly about using <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> by default for SWF embedding, or even considering using the Embed tag.  It&#8217;s all good, I have Pimp Cloth Armor +2.  I still need to send the Web team an email of the additional parameters one needs to allow a developer to modify to embed Flash content with more control.</p>
<p>Additionally, I asked about what version of PHP code hinting they would support.  It sounded like 5.  While I appreciated code hinting for PHP, I asked that they also provide a way to improve on those code hints via configuration files in case they don&#8217;t get auto-class hinting like Zend for example.  If you&#8217;ve ever tried to write your own custom code hints for Dreamweaver, attaching a hook to the back of your neck and jumping out of a helicopter with no parachute is more fun.  Bottom line, even version 2, if Web is installed on my machine, I&#8217;d use it.  I primarily use a Mac, but on my home PC, heck yeah, Web looks fun, and their CSS re-factoring tools sound yum.  I suck at CSS so any tool that helps me become a better coder by enforcing best practices&#8230; <a href="http://www.youtube.com/watch?v=s3jmEdJJ3Dc">woo</a> <a href="http://ytmnd.com/search?q=woo+woo&amp;x=0&amp;y=0">woo</a>!</p>
<p>Next up was the Blend crew.  Some pro&#8217;s and cons here.  First off, Blend has it rough right out the gate.  It&#8217;s a phat tool for doing both <a href="http://www.microsoft.com/windows/products/windowsvista/default.mspx">Vista</a> application design for <a href="http://wpf.netfx3.com/">WPF</a> and Silverlight development ( as subset of WPF ).  Creating a tool to support both environments is a challenge.  <a href="http://labs.adobe.com/technologies/flex/">Flex Builder 3</a> does it pretty well from the Beta 2 that I&#8217;ve played with.  Choosing the older SDK or the new 3 one is just a radio button, converting older code is a snap if you aren&#8217;t using charts, and choosing an application to be an <a href="http://labs.adobe.com/technologies/air/">AIR</a> app is just another radio button.  The AIR API isn&#8217;t monstrous compared to WPF, so Adobe has it a lot easier getting Flex Builder to support the Flex SDK, ActionScript 3, and AIR api&#8217;s.  Furthermore, people like me don&#8217;t really give a flying flip about developing applications for Vista (until customers come calling offering more bling than they do for web appz).  The demo&#8217;s they showed for Vista were hot, definitely had good designers employed behind their creation, and the syntax just drew me in.</p>
<p>For example, their binding syntax was sick!  Instead of just being a variable like Flex does it, it actually had parameters IN the binding.  The 2nd one was one way or two way binding.  OMG, I write so much bloody code to do 2-way bindings in Flex.  For the simple stuff, you can use 2 binding tags, or just another bind&#8230; but for the complex stuff, you end up writing your own getter/setters.  WPF&#8217;s way is just&#8230; awesome.  So awesome I forgot what the 3rd parameter does.  Adobe, copy that shiz.</p>
<p>&#8230;alas, I didn&#8217;t really get a feel for what the app had for Silverlight 2 creation.  You can only show so much in an hour when someone keeps running their mouth about how they hate the Solutions Panel.  We used the Blend September preview on a project, and I felt it was good.  The integration between <a href="http://www.microsoft.com/expression/products/overview.aspx?key=design">Design</a> &amp; Blend needed some work, but you COULD get your designs there, just not 100% intact.  What really beefed me about Blend, though, was their timeline.  With XAML (the XML markup language for WPF &amp; Silverlight apps) having all kinds of wonderful options with regards to animations being separate elements and applicable to objects either as integrated or re-usable resources, I was really irritated that the current timeline in Blend doesn&#8217;t leverage that framework to it&#8217;s fullest.  Furthermore, the community has asked <a href="http://www.adobe.com">Adobe</a> countless times over the years for <a href="http://www.adobe.com/products/flash/">Flash</a> to have an <a href="http://www.adobe.com/products/aftereffects">After Effects</a> like timeline option.  I told <a href="http://samuelwan.com/information/">Samuel Wan</a> almost like 2 years ago that they really need to use that as a selling point for Blend as an advantage.  I guess they think that <a href="http://www.adobe.com/products/livemotion/">LiveMotion</a> had that, and didn&#8217;t out-sell Flash, so why should they?  I still disagree with the current incarnation; to me it needs a lot of work.  The newest Blend preview I saw had a bezier tweening panel for some of the keyframes.  Dope; it was big, and for a specific keyframe.  Regardless, I still think it&#8217;d be cooler if it were integrated into the timeline itself.  Once you go After Effects, you never go back.  I liked what I saw.  It was hilarious to see the project manager take it personal that they didn&#8217;t have a specific month (October?) preview.</p>
<p>I debated for an hour about that damn Solutions Panel.  Maybe the Visual Studio guys like it, but after 1 project using that SOB, I hate it.  I argued that we need to have a regular explorer window in the program.  I don&#8217;t want to remove it, rather just for those of us web developers who are fully capable of managing our files in Windows Explorer / Mac Finder, we don&#8217;t need some glorified panel to hand-hold us.  I&#8217;ve never seen an app do well that built their own explorer like metaphor whereas the ones that do good use the OS based explorer as the base, and built atop it.  A lot of the text editors like EditPlus, TextMate, etc. do it very well.</p>
<p>Raise your hand if you think, in retrospect, the Project Panel in Flash MX 2004 was a complete failure?  Of those who raised your hand, do you dig <a href="http://www.gskinner.com/products/gProject/about.php">GProject</a>?  I know I do.  Grant Skinner built his own, and it did well.  I&#8217;d argue, though, that it was merely Grant&#8217;s skill and long history of Flash that made it successful.  Most of us would of preferred just a simple explorer window we could point to our project directory, give the IDE some class info, and call it a day.  Kinda like FlexBuilder&#8230;.</p>
<p>Their counter-argument was that they need the Solution&#8217;s Panel for 2 reasons.  First, it allows the same project to be opened in Visual Studio.  Fair enough.  The second reason was that it allowed them to determine what assets needed to be compiled in the Silverlight app.  Whatever.  Give me an explorer window, and parse the XAML or C# to know what assets I used.  Either that, or make it not suck; like work like Windows normally works.  Drag and drop, a REAL folder structure, not some made up one, and auto-refresh.</p>
<p>Another funny part was when I asked why their XAML didn&#8217;t use proper namespaces.  The only namespaces it used was for custom stuff or some attributes.  They replied that it&#8217;s perfectly valid XML to not show the namespaces unless you are writing elements outside of the default.  Then Molly chimed in her agreement with that &#8220;tone&#8221; that implies, &#8220;What the f$*2 are you talking about?&#8221;.  It&#8217;s pretty awesome to have one of the project leads of Blend and the web standards queen shoot you down at the same time.  Owned.  Naturally, I&#8217;m left wondering why in the heck MXML in Flex has the namespaces like that&#8230; and what&#8217;s the default namespace for MXML?  Grr!</p>
<p>Last thing I asked for was, &#8220;The less HTML &amp; JavaScript we have to write for Silverlight 2 via Blend &amp; Visual Studio, the better.&#8221;  80% of my time creating the <a href="http://jessewarden.com/2007/10/scale-9-in-silverlight.html">Scale 9 example</a> was spent scouring the web &amp; the Silverlight forums for the right HTML &amp; CSS combination that made it work in all browsers, all OS&#8217;s.  The whole point of using a web plug-in is so you don&#8217;t have to deal with that bs.</p>
<p>I could rant all day about <a href="http://www.microsoft.com/surface/">Microsoft Surface</a>.  All I&#8217;m going to say is, first, YouTube doesn&#8217;t do it justice; you have to see it in person.  Second, it changes everything.  For those who can&#8217;t take the epic sentence, here&#8217;s <a href="http://www.youtube.com/watch?v=CZrr7AZ9nCY">some sarcasm</a> to compensate.</p>
<p>Lastly, we got to introduce ourselves to Bill Gates and ask him a question or two.  I thought long and hard about what to ask, and every question I came up with could probably be found to be already asked and answered by crawling the web.  Although I felt pressured to ask something relevant technically to the Flash &amp; Flex community, I just couldn&#8217;t find something that was appropriate.  So, I asked about his decision to focus on the <a href="http://www.gatesfoundation.org/">Gates Foundation</a> full time.  <a href="http://www.bit-101.com/blog/?p=1098">Keith</a> <a href="http://www.bit-101.com/blog/?p=1100">covered</a> <a href="http://www.bit-101.com/blog/?p=1101">all</a> <a href="http://www.bit-101.com/blog/?p=1102">the</a> <a href="http://www.bit-101.com/blog/?p=1103">questions</a> <a href="http://www.bit-101.com/blog/?p=1104">in</a> his series of blog posts.  I&#8217;m re-posting my question here with a few corrections since the transcriptionist couldn&#8217;t hear me too well.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p><quote><br />
<strong>Jesse Warden</strong>: So, your a (almost called him a dude) man who has really influenced a lot of software industries and then as soon as you announced the Gates Foundation, the media jumped on it and talked about how you were influencing philanthropic endeavors. Was there a turning point that made you feel like you wanted to do that full-time or was it a culmination thing? How did you get to the point where you now want to focus on it full-time?</quote></p>
<p><strong>BILL GATES</strong>: Well, I said even in my 20s that I didn&#8217;t think somebody who was 60-years old should be deciding the technology strategy for a state of the art software company. So, you know, I&#8217;m pretty old now, and it&#8217;s good for somebody else to come along. I&#8217;m still the guy who thinks, hey, saving a few bytes of memory is a worthwhile thing, let&#8217;s spend a few hours and save a few bytes here. Nowadays just saving a megabyte, it&#8217;s not worth it, don&#8217;t waste your time. So, you get a certain mindset about what makes sense. To me, computing power is still a little scary. Now, compared to the people before me, I was a revolutionary in how I thought about those things.</p>
<p>So, there comes a point where somebody should pick things up. Since the age of 17 I was CEO and sort of chief software architect until seven years ago, and then I got &#8212; that was a big change, maybe not as big but it was a big change, because then Steve took over and has run the company since the year 2000, and that was sort of getting ready for the idea of running Microsoft in a different way.</p>
<p>The foundation stuff has turned out to be very exciting, and I&#8217;d say there&#8217;s one thing in common with the foundation and Microsoft. When we announced a software-centric vision of the world, 1975, there weren&#8217;t a lot of people involved in that, and it&#8217;s been exciting to see it sort of developed as we dreamed that it would, and many people coming in and contributing to that.</p>
<p>When the foundation got going in global health, there just wasn&#8217;t that much &#8212; there was nothing going on in terms of Malaria, TB. We have 20 diseases that we do. And we think we&#8217;re going to conquer the majority of those in some reasonable period of time.</p>
<p>So, my ability to spend full time on that, go get the pharmaceutical companies more involved, get the best scientists more involved, back some risky approaches there, I may be more unique in terms of facilitating some of that than I am in software.</p>
<p>And sometime in my fifties I was going to make a change, and so about a year and a half ago, we picked the date and told the world, and we&#8217;re on track for that to happen.</p>
<p>So, there&#8217;s nothing magic about the date, but it seemed like Microsoft was in good shape, Ray Ozzie was the person stepping up to take on a big part of what I&#8217;d one uniquely, and so we made the choice.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Afterwards, a few of us went out to finish the night out.  It was really cool to meet a lot of new people in my industry; that&#8217;s one of the reasons why I got into consulting in the first place.  They were all smart and clearly dug their professions, being passionate about what they do.  I got to learn a little more about some of the Microsoft people, and how they got into their roles.</p>
<p>I finished off the trip by meeting one of my old co-workers at the Atlanta airport, Tom Link of <a href="http://universalmind.com">Universal Mind</a>, and debated about AIR.  They are having mucho success with AIR in their business, whereas I&#8217;m still bitter.  I had to clarify my position that I&#8217;m more irritated by Adobe&#8217;s allocation of resources to a desktop endeavor vs. improving the work-flow &amp; integration of their products.  Taking people of the caliber and experience level of <a href="http://madowney.com/blog/">Mike Downey</a> and <a href="http://www.mikechambers.com/blog/">Mike Chambers</a> and putting them on a particular endeavor clearly shows the importance Adobe perceives in that project.  Don&#8217;t get me wrong, having <a href="http://www.andersblog.com/">Mark Anders</a> and crew on <a href="http://adobedev.adobe.acrobat.com/p12022133/">Thermo</a> (careful, mean window resizing JavaScript) is definitely awesome, but I just feel there was a lot of work left to be done on the design side, a side where Mike and Mike clearly had booku amounts of experience.  Regardless, it&#8217;s in Adobe&#8217;s best interest to continue satisfying all the kids dreams who grew up with Java and were let down with false moniker of &#8220;Write Once, Run Anywhere&#8221; (client, not server).  Now that Adobe has delivered that on the web with Flex 2 &amp; Flash Player 9, putting momentum behind a cross-OS desktop endeavor just sweetens the deal, and tightens their hold on a market.  I agree from a business perspective.  I&#8217;m just selfish, and it&#8217;s my job to be critical; things can always be made better.  &#8230;like having <a href="http://www.rictus.com/muchado/2007/10/09/design-workflow-features-in-flex-builder-3/">gems like this</a> not be hidden on some awesome employee&#8217;s blog, and rather trademark features of a product suite.</p>
<p>By the end of the day, I had pretty much lost my voice.  I had never talked about software for so long, and so vigorously.  Insanely fun!</p>
<p>All in all, the trip was a blast.  I met new people, learned a lot, and hopefully helped Microsoft out.  Most importantly, it really changed my perception of Microsoft.  I never grew up in the world a lot of other people did with regards to Microsoft being a bully against the openness of the web.  So, I never had a negative perception of them to begin with.  Instead, I grew up with Corel, Adobe, and Macromedia software so just never really cared about their products because I never used them much.  Yeah, Word, Excel, and XP, but I didn&#8217;t make my career on that software.  Anyway, you hang out in the web world for a length of time, and there is enough Microsoft vitriol that some is bound to get splashed on you.  It was funny to hear some of Microsoft employee&#8217;s, especially the new ones, talk about their shock, and ways of dealing with the hate and anger thrown their way the minute they say they work at Microsoft.  This is apparent visually in the body language of those that are in parts of their designer division.  Even some of the contractors who merely consult on some projects for Microsoft recount on how they borrow notorious death threats from colleagues with similiar Microsoft ties, and use those as de-sensitizing measures by posting print-outs of them on their wall to constantly remind them that &#8220;someone else has it worse&#8221;.  Really wild.  Regardless, they are a lot like Adobe.  They are cool, having people there who clearly love what they do, and are insanely smart.</p>
<p>What really drove it home for me, though, was the internal strife; the healthy kind.  When I was about to go work at IBM, I had peers exclaim how horrible it was in their web technology division.  This couldn&#8217;t be further from the truth; meaning, if you actually do software development vs. extremely simple and tedious HTML updates.  Clearly, IBM is so big, that you can&#8217;t judge a company by one employee in one part.  Having an opinion of a company so large is personal, it makes it really hard to stereotype.  My experience there was really positive.  Naturally, a company that large has a lot of internal companies vying for their own self-interest.  So, it was really cool to hear about how Microsoft has these internal mailing lists, with lots of traffic, and various other politics that play out over time across these areas of the company&#8217;s product lines.  The company&#8217;s best interests are fiercely debated.  No one employee I talked to could (fairly) give me a sense of how much one concept was agreed on percentage wise.</p>
<p>For example, a lot(?) in Microsoft believe, like I do, there is room in the Rich Internet Application market to do things right that others have done wrong.   To provide good tools and technology for people to build cool experiences atop of.  Like, say&#8230; downloading fonts and using them on the client in Sliverlight 1.0.  The counter to that is those who believe they should instead be nurturing their existing .NET developer market towards these tools, and allow them to leverage their existing skillset in the RIA arena.  The example here is how Blend and Visual Studio&#8217;s integration model ENFORCES the code-behind methodology.  You design, layout, and transition your app in Blend, and write the code for it in Visual Studio.  Each view or component has associated code that makes it work in an associated .cs file; aka, code behind the design, that is visually represented in an associated .xaml file.</p>
<p>There are 3 ways to do this in the Flex world, and I hate them all.  Although inheritance still is bleh compared to composition, when you grow up extending GUI base classes to create your View&#8217;s in Model View Controller, it&#8217;s really hard to relate to these mature Java &amp; C++ programmers who come in and go, &#8220;OMG&#8230; that is so gross!  You need to separate your View and it&#8217;s implementation.&#8221;  Say what?  The 3 ways are: MXML is all GUI, and ActionScript is externally referenced in your mx:Script tag; MXML is all GUI, and you extend that MXML class with ActionScript to handle the implementation; or the reverse; you write ActionScript implementation code, and extend that with MXML for layout.</p>
<p>So, while I dislike code-behind work-flows, it clearly works in the Microsoft realm at least in theory.  A lot of .NET dudes I know haven&#8217;t had the opportunity to do a lot of hardcore front-end work.  Why would they when .NET writes all the HTML, JavaScript, and CSS for them?  While they&#8217;re technically &#8220;supposed&#8221; to stay in their Visual Studio sandbox, a lot are chomping at the bit to do some Blend work.  I have a feeling this will die down, and those who are server dudes at heart will return to VS and stay there.</p>
<p>The down-side is the constant &#8220;throw it over the wall&#8221; mentality that I see in the perception of work-flows.  The best teams (<a href="http://www.cynergysystems.com/blogs/page/davewolf?entry=it_takes_a_village">villages</a>?) are those that have designers and developers working together, regardless of tools.  Having Blend be the experience creation liaison between Design and Visual Studio isn&#8217;t a good substitute for a qualified Interaction Designer.  If you read Grant Skinner&#8217;s <a href="http://www.gskinner.com/blog/archives/2007/10/thermo_user_per.html">initial entry about Thermo</a>, Adobe&#8217;s tool in development targeted at Designers that will allow them to leverage the Flex SDK from a design perspective, and actually be empowered to design good Flex apps, you can see how again, you run into dangers when you try to supplement a tool for a qualified person.  Unfortunately, it&#8217;s hard to sell a client on needing another $20,000 so you can afford the proper Information Architecture contractor on a project.  &#8220;What?  We&#8217;re already paying for a DBA, back-end developer, front end coder, designer, and project/client manager&#8230; what the hell is an IA really going to add?&#8221;  The same goes for hiring Interaction Designers, or any really good designer / developer hybrid who can specialize mitigating work and designs between the designers and developers on the team.  No tool can replace the importance of those people on projects.  No one can get around production art (aka break up).</p>
<p>Regardless, I still like the tools.  To me, Flash MX 2004 proved that the tool is mightier than the run-time.  Yes, AS1 bytecode was slow, but when you give someone a tool to leverage a class based (ActionScript 2) language to create really compelling and powerful web applications&#8230; that just says a lot about how effective good tools can be at empowering people to leverage runtimes.  Allowing those tools to integrate, and integrate well, is what really helps facilitate good team interaction in a work-flow that works.  I hereby request Microsoft refrain from using the term &#8220;throw it over the wall&#8221; and instead focus on Expression&#8217;s mantra being &#8220;tool integration&#8221;.  There&#8217;s something special about how Blend and Visual Studio can share the same project.  You don&#8217;t see Flex, Flash, <a href="http://www.adobe.com/products/photoshop/">Photoshop</a>, or <a href="http://www.adobe.com/software/fireworks">Fireworks</a> doing that shiz.  You need to leverage that, build upon that, and empower teams, especially those who have never done hardcore RIA work before, to be successful on their own merits and not have the marketing suggest they retreat into their own camps.  Instead, it&#8217;s a collaborative effort.</p>
<p>My vote for representatives from the Flash/Flex community for next year (2008) are:</p>
<p>Developers = <a href="www.gskinner.com/blog/">Grant Skinner</a>, <a href="http://www.moock.org/">Colin Moock</a>, <a href="http://www.darronschall.com">Darron Schall</a>, Chafic Kazoun, <a href="http://wahlers.com.br/claus/blog/">Claus Wahlers</a>, <a href="http://www.joeberkovitz.com/">Joe Berkovitz</a>, <a href="http://www.dougmccune.com/blog/">Doug McCune</a>, <a href="http://blog.benstucki.net/">Ben Stucki</a></p>
<p>Designers = <a href="http://www.joshuadavis.com/">Joshua Davis</a>, <a href="http://gmunk.com">Bradley Grosh</a>, <a href="http://www.hillmancurtis.com/">Hillman Curtis</a>, Your Mom</p>
<p>Thanks again Microsoft, it was dope!  I hope I helped out.</p>


<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2007/12/mix-n-mash-2k7-bill-gates-web-blend-and-silverlight.html/feed</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>WordML: Could Powerpoint be next?</title>
		<link>https://jessewarden.com/2003/08/wordml-could-powerpoint-be-next.html</link>
					<comments>https://jessewarden.com/2003/08/wordml-could-powerpoint-be-next.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Fri, 08 Aug 2003 21:52:08 +0000</pubDate>
				<category><![CDATA[Appz]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=235</guid>

					<description><![CDATA[Good info over at &#60;a href=&#8221;http://www.zoode.org/b2/index.php?p=48&#38;c=1&#8243;&#62;Zoode Blog&#60;/a&#62; about WordML, the XML format for new Word documents in Word 2003. If this were to happen to Powerpoint, Flashcom development would blow the f$%(* up. One can only dream and use 3rd party progs for now (unless Breeze has it&#8217;s own parser in which case you&#8217;ll have [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Good info over at &lt;a href=&#8221;http://www.zoode.org/b2/index.php?p=48&amp;c=1&#8243;&gt;Zoode Blog&lt;/a&gt; about WordML, the XML format for new Word documents in Word 2003.</p>
<p>If this were to happen to Powerpoint, Flashcom development would blow the f$%(* up.  One can only dream and use 3rd party progs for now (unless Breeze has it&#8217;s own parser in which case you&#8217;ll have to dish out mad dough).</p>
<p>I&#8217;m sick of XML, I swear I want to put it on bread, and then feed it to a Lion at the zoo and be done with it, but then something like this stirs on the horizon, and your like, &#8220;Dude, Flash can read XML!&#8221;, and ideas start flowin&#8230;</p>
<p>I haven&#8217;t investigated if this could even happen, nor do I feel like it, but it&#8217;d be nice to know if its a possibilty or if I should just go on the same route I&#8217;ve been on in the Flashcom front.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2003/08/wordml-could-powerpoint-be-next.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
