I’d like to thank everyone who attended my TechWed presentation yesterday. We had around 85 people in attendance! Thanks to Stacy Sison for convincing me that I should present.
I will be giving this presentation again tonight at the Seattle Flex User Group, so if you are in Seattle… show up. We’ll have a bit more time for questions at tonight’s presentation.
:: PRESENTATION MATERIALS ::
Slides
TechWed Presentation
FlexMeetup.com Presentation
So earlier today someone sent me an email asking me why I claim to be an Adobeholic. I figured it was an interesting question, so here is your answer… and yes, I’ll admit I’m a fan-boy.
My Dock
Let’s start off with my dock on my laptop:

I’m well aware that this isn’t every piece of software that Adobe makes, but it’s what I use.
I haven’t bought Premiere or After Effects because I haven’t had a need for them recently. I’ve been out of video editing for a while (Although, I might spring for AE soon, I have some fun video / Flash experiments in mind).
I’m not a print designer so InDesign is not my cup of tea.
Captivate isn’t on the Mac, or else I would absolutely have it. Does anybody know of a good screen recording solution for the Mac?
Director, meh… I’ll use Adobe AIR instead.
Flash Media Server developer edition is installed, and the Admin console isn’t on my dock.
Flash Paper isn’t on the Mac either… oh Flash Paper… you’ve had a rough life.
Anything I’m missing, please feel free to chime in.
My Career
I have built my entire career on Macromedia and Adobe products. Starting out as a web designer, and then moving into ColdFusion and ultimately working with the Flash platform. I’ve been riding the RIA and rich user experience wave since the beginning, and Adobe has been making that wave bigger and bigger with each passing year.
Currently, I am the Senior Adobe Developer (cool title right?) for T-Mobile USA’s Retail Technologies team.. doing research and prototype development using Adobe’s products.
My Free-time
As if working with Adobe products all day long at work wasn’t enough. When I get home, I spend most of my free-time working with Adobe products. It’s a curse really… I have all of these really cool ideas for projects and experiments, and only so much time within the day to work on them.
I also spend loads of my time reading blogs and articles, attending user groups, blogging, planning events (like the BugQuash), and many other things that are related to Adobe products.
My Bookshelf
And finally, my bookshelf:

This photo doesn’t include the boxes of books that I have in the garage, but it should give you an idea of my obsession with technology.
Conclusion
So that’s why I claim to be an Adobeholic. I’d love to see what all of your bookshelves look like. So take pictures and leave them in the comments below.
Today’s tip is a short one… I have begun planning a very exciting Flex-centric event that is going to be held up here in Seattle. More on that later though.
Your tip for the day… The Flex SDK team has a guide that explains the coding conventions that they use within the SDK (for the most part).
Flex SDK coding conventions and best practices
I agree with almost all of the conventions they list here. If you’re planning on contributing the to Flex SDK, you NEED to be familiar with these conventions.
I was playing with Cocomo today and hit a wall dealing with the Flash Player 10 version of Cocomo.swc while using Adobe AIR. I created a new AIR application in Flex Builder 3, and pointed it to the Flex SDK 3.2. I then linked in the FP10 version of Cocomo.swc. Everything was going fine until I tried to run my application and it threw “Error #1065: Variable SoundCodec is not defined.”
After doing a bit of research, I learned this error occurs when trying to run Flash Player 10 code in the Flash Player 9 runtime. I thought Flex Builder would handle this for me automatically when I pointed it to the 3.2 SDK.
So here is the fix and your tip for the day.
Within Flex Builder:
- Select your AIR application in the Flex navigator
- From the menu choose, Project > Properties
- Choose “Flex Compiler”
- Add “-target-player=10″ to your Additional compiler arguments
- Click OK

This isn’t limited to Adobe AIR, you can set the target player of your Flex applications as well.
A little while ago I posed the following question to the flexcoders mailing list,
I just wanted to ping everyone and get their opinion on something. Why would anyone ever want to use the include directive? I’ve recently been working on poorly designed project where at the top of every module there is an “include Header.as” statement that has 30 include statements within it. To give a datagrid additional functionality, you give it an id=”myDataGrid”, and the include statement takes care of the rest. It’s really bad.
I just don’t see a good use for the include statement anymore. In my opinion, it just promotes bad programming practices.
I mean, can’t everything be taken care of using OOP methodologies? Thoughts?
I’d like to thank everyone who responded, you all gave me quite a bit of insight.
After thinking about this for a while now, here is my list of the common reasons people incorrectly use include (include directive).
I have common functionality that I want shared across multiple components.
That’s great that you’re using DRY philosophy! However, it’s much better to combine the DRY philosophy with object-oriented programming practices. Instead of using the include directive, abstract out common functionality into a parent class. Then you can create children of your parent component, and add additional functionality as needed.
I’m building a framework.
Great… don’t use include. See above reason.
I want to use Code-Behind.
Ted Patrick wrote a wonderful post on Code-Behind in Flex 2. He accomplishes Code-Behind, and does so in an object-oriented manner without using include statements.
Adobe doesn’t natively allow multiple inheritance in AS3, and using the include directive is the only way to fake it.
Frankly, if you understand that statement… you’re advanced enough to know what you’re doing, and you don’t need this tip.
== Conclusion ==
There are rare occasions where include is exactly what you need. However, if you still feel you have a valid reason to use the include directive on a regular basis, please leave a comment below and explain yourself.