Wednesday, July 21, 2010

Powers of the Subconscious (ref: Malcolm Gladwell, Jesse Schell)

I discovered my subconscious's persona. Its true. He was swimming around in my head this whole time. He is an old man with a short white beard and disheveled white hair. He has thick black rimmed glasses with a round frame. He tends to wear a purple robe and has a cartoon appearance that falls somewhere between wizard and mad scientist. He is very agile for an old man and is a mischievous prankster. I'd say he is roughly half a foot tall, lives underwater, and keeps within a turtle shell for protection.

Still with me?

I've been doing some reading lately and have been very much inspired by Malcolm Gladwell's Blink as well as Jesse Schell's Art of Game Design. I highly recommend both.

Each book touches on a similar topic: the power of your subconscious.

Gladwell focuses more on how it solves complex problems in the blink of an eye as well as impacts your daily actions without you even realizing it. Would you believe me if I told you that you would score 10% lower on a Trivia game if you spent 15 minutes before the game thinking about being a Football Hooligan? I don't have the reference in front of me, but read Blink and it has hundreds of examples like this that will make you ponder what is really going on in your head.

Schell mentions the subconscious in a chapter on brainstorming. He explains how powerful it can be at solving problems and coming up with ideas, especially while you are focusing on other things. Ever wake up and suddenly have the answer to a problem you had been working on for weeks? That is the subconscious at work.

Personally, I had always been under the impression that the subconscious does what it wants and if it speaks up, hopefully you are listening. However, both authors disagree with my assumption and they describe how you can practice, train, and hone in on your subconscious. Gladwell makes an effort to teach you how to be aware of its impact and to try to pick and choose when to let it affect your actions. Schell describes ways of keeping in touch with it, focusing it on a direct problem, and listening for the answer to pop-up down the road.

One way Schell suggests using to get in touch with your subconscious is by giving it a persona. Try to understand how it acts and picture in your mind what that person/thing may look like so that every time you want to 'use' it you can think of that image.

I tried this the other night as finished reading the chapter and was about to fall asleep. The first thing that popped in my mind was the tiny old wizard in the turtle shell I described above. Completely random, I know. Somewhat crazy, sure I admit it. But it could have been worse, it could have been...

Friday, July 2, 2010

Which Developer Tool to use for Flash AS3?

Sony has an interesting Flash Dev setup here in Tucson in that each developer can use whatever tool they want. Typically, I have always worked on teams where everyone used the same tool. But here, they want you to use whatever you code best with and the projects are setup in such a way that it really doesn't matter. There is an ant build template that everyone copies & customizes for compiling. As long as you exclude your customized ant build and your personal development files (such as a flex project file) then everyone is good to go and work environments are compatible with whatever tool you want.

Soooo, the question then is what tool do you want? I began my action script endeavors back in college in the Flash IDE. When I was at Simulex I upgraded to the FDT plugin for Eclipse in AS2. When AS3 came out, we switched to the Flex Plugin for Eclipse mainly due to the profiler. I stayed with the Flex Plugin when I moved to the Basement as it was and is a very solid development tool. When I arrived here at Sony and was given the choice of anything... I took some time and tried out three main options:

1. Some form of Eclipse (FlashBuilder, FDT, Flex Plugin)
2. FlashDevelop
3. JEdit (or a similar text edit)

I am not listing the Flash IDE as a coding tool. Its not. If you are using it, promise me you will spend 1 week and learn one of these other tools... you will not regret it.

The first option was my top choice coming in since I had been using one form of Eclipse or another for the past 4 years. Its a solid tool with the standard bells and whistles of autocomplete, jump to method/class, code highlighting, etc. Adobe is backing it. It integrates into SVN, CVS or whatever check in/out system you are using. You can get errors on save which is a nice little feature. And it manages multiple projects and libraries very easily (this is the main reason I have stayed away from FlashDevelop in the past). On the flip side, it can be a bit cumbersome, seemingly overly complicated, and sluggish. Its almost as if it is trying to do too much.

I was very curious about the 3rd option which is JEdit since I had never customized a text editor for actionscript coding before... it seemed very l33t ;). Chris Hill, the technical director here at Sony, made and excellent plugin called flexulous which allows you compile ActionScript or Flex projects in JEdit. The beauty of JEdit is that you can customize it in a million ways with all sorts of plug-ins as well as short-cuts to increase your development time drastically once you have been working in it for a long time. The downfall of JEdit is that it does not have any suitable jump to method/function plugins, auto-complete, or instance highlighting (tho it does have syntax highlighting). I really tried to give JEdit a chance because I feel it could fit very well with time. And who doesn't want to be l33t??? but I rely too heavily on jump to and auto complete to dive in completely.

Finally, I tried FlashDevelop. I have spent some time with it in the past but always left because it can't handle multiple projects without opening multiple instances of FlashDevelop, which I still find somewhat ridiculous. However, now I will be working on a single project for months at a time instead of jumping between 5 projects in a single day so multiple projects are no longer a deal breaker for me. With that hurdle out of the way, FlashDevelop is a happy medium between Eclipse and JEdit. It is a focused AS tool and therefore not as bloated or slow as Eclipse. It does has the main bells and whistles such as auto complete and jump to, but it is lacking the highlight occurrences that Eclipse plugins offer. I found an OK plugin that allows for highlighting all occurrences of whatever word you have selected... its not as good as Eclipse's highlighting since it doesn't take syntax into account and it doesn't give you hot-spots to jump to on your scrollbar, but its better than nothing. It has some very nice snippets and macros which are fairly customizable, not quite to JEdit's level but seem to be an improvement over Eclipse snippet tools.

Overall, each tool has its pluses and minuses and all of the options can be solid choices, it just depends on your personal needs. For me, FlashDevelop seems to be the happy medium and it is now my editor of choice. If I wind up jumping between multiple projects throughout the day then I would most likely switch to FDT or FlashBuilder. And if anyone created plugins for jump-to method/function, auto-complete, and instance highlighting in JEdit then I would jump ships as well since JEdit is amazingly customizable. In the meantime, I'll be happily chugging away on FlashDevelop.

Now I wonder if anyone is going to make me eat my words from a year ago? Iain? ;)