# At nerd camp

My wife got an email from Nate‘s wife with a picture of me at the Flex Bugquash.   Thankfully, without an identifying caption.

That’s my rickety old Gateway laptop  sporting Windows Vista.  I think one other person there had an HP with Windows, but otherwise it was wall to wall Macbooks.  Unfortunately, that meant I spent a lot of time troubleshooting problems without tech support.  Wifi didn’t work for me either at the Adobe campus, once all the Macs showed up.  Apparently there’s a prioritization.

Anyway, there were lots of snacks (I had 3 times my share of M&Ms), lots of hacking, and while I didn’t get a patch submitted to fix a bug, I learned how to hack the Flex SDK, and got some unit tests around DateFormatter running.

I’m now a lot more comfortable in Flex and am incorporating what I learned with Sprouts and Fluint.  I finally feel comfortable enough to work on automating a Flex build & test suite.

# Using Flash 10 debug projector in Flexbuilder 3.3

Here’s how I set up Flexbuilder 3.3 to use the flashplayer_10_sa_debug.exe.

(I still haven’t figured out how to get it to launch full screen, and you may need a commercial app that wraps projector to do that — though it’s probably possible with the open sourcing.)

or whatever the current version is from:

Locate a swf and lauch it directly, choosing flashplayer_10_sa_debug.exe when prompted by windows for the application to use.  This will set up the Windows registry to associate the player with .swf files.

Set up your run configuration in Flexbuilder to open the project .swf file at c:\path\to\YourProject-debug\Whatever.swf (instead of http:\\localhost\YourProject-debug\Whatever.html)

This is a bit of a hack, since it needs done for every project, but oh well.

Now it will launch, but you’ll get a pesky alert like:

Flex Builder cannot locate the required version of Flash Player.  You might need to install Flash Player 9 or reinstall Flex Builder.

Do you want to try to run your application with the current version?

To get rid up this and use Flash 10 (and the new Flex SDK), first download the SDK:

To have Flexbuilder use the latest SDK, open Windows > Preferences > Flex > Installed SDKS

Open the Flex build path, click on the Library Path tab, and delete playerglobal.swc from Flex 3.3.  Then click “Add SWC” and locate the playerglobal.swc in  path/to/new/sdk/frameworks/libs/player/10

Then specify the flashplayer included in the SDK download for the project (again, a hack that needs repeated for each project).  Right click on the project, select “Properties”, and select “Flex Compiler”

Then enter 10.0.0 in “Require Flash Version”.  This should work.

http://panellabs.net/2009/02/18/flex-builder-running-applications-in-projector-standalone-flashplayer/

http://rantspace.net/u/redwyre/2008/12/01/flex-builder-and-flash-10/

Also see:

http://stopcoding.wordpress.com/2008/06/17/hellfire_compiler/

to use the HFCD which pre-loads the compiler in a daemon to speed up compile times.

# Iteration Zero

I read this post today about “iteration zero.”  It’s a pattern I recognize well.

In fact I’ve been going through a lot of iteration zeros lately.  I think the preliminary work, including team selection, tool choice and setup, development environment installation, build and test process, etc., can be a significant factor in the success of a project.  Part of the idea of adopting Agile is to help define those processes and types of tools, if not the actual tools used.

There seem to be certain brands of Agile that go hand in hand with certain tools, such as a Java shop with Tomcat + Spring + Hibernate + Junit + Hudson + Confluence + Jira or a  Ruby team with Rails + Macs + Basecamp + CruiseControl.RB + FireWatir, etc.  Since certain experts (often the authors of specific tools) are strong advocates for their methodology, it’s no surprise that users of specific tools adopt a similar stack and brand of Agile.

I think we’ve learned, if nothing else, that the term “Agile” and the definition of  an agile process is slippery enough; much to the chagrin, no doubt, of the Agile “thought leaders” — who are probably as responsible as anyone else for the difficulty in pinning it down.  Part of iteration 0 is pinning down agreed upon definitions, but the important part is being able to create your “Hello World” using the tools and process decided upon.

Of course, each time a team repeats the process, it gets easier.  That’s the secret of a good agile team.  But the reality is that most teams aren’t static, and not surprisingly, neither is the technology.  If it were, I think a lot of developers would be looking for different jobs.  It’s the challenge of learning something new that appeals to many of them, myself included.

But there comes also time when you just want to “get ‘er done”, and that’s when the iteration zero becomes a pain.  Usually that’s a good sign, because it means you’ve got a project you’re interested in working on.  I said earlier that a good iteration zero was one contributing factor to success.  I think the other major factor is interest in the project.  Developer interest doesn’t always transfer to customer interest, but it’s a pretty good substitute.

So what am I most interested in?  I’m interested in the interation zero.  In finding the tools and process — for testing yes, but also for development, deployment, and project management — that best contribute to the success of projects.  Of course, that’s different for everyone, but there should be commonality, and much like Agile, I think there are good and bad patterns to be aware of.

My idea of a “QA Site” (a term I’ve never been completely satisfied with, but have stuck with) is to make iteration zero as painless as possible.  To reduce the ramp up time, and to build out the necessary infrastructure as quickly as possible, but keeping it lightweight (so it doesn’t become burdensome) and flexible (so it doesn’t bias to one set of tool preferences.)  To recongnize that there are both principles and preferences, and to not confuse the two.  I realized that I’m in the business of “Iteration Zero”.

# Coldscripts

ColdScripts is a good site with links, summaries, and rating for a bunch of PHP applications and frameworks. It has a few discrepancies and outdated listings, like WACT and Ambivalence for MVC frameworks (but, hey I still use Ambivalence for klamathsystems.com.  That’s how I found it, after migrating Klamathsytems off of Westhost to share the same Linode as One Shore.)  The ratings looked fairly accurate and up to date however

Example categories include:

• frameworks
• blogs
• cms
• ecommerce
• forums
• galleries
• wikis

A surprising absense was Magento from CMS