Tuesday, October 11, 2005

Project Ideas:

Code generator for Flash (spits out XML parser based on XML file you provide)
Code framework for Flash - Physics, AI, Collision Detection, Math, SpecialFX, etc.

Thursday, October 06, 2005

You know, my two year journey with Flash has been a painful but eventually gratifying one. I think every person who is involved in creating something goes through this pain. The pain of having to first acquire the skills, learn the tools of the trade, and finally reach a mastery level whereby you are endowed with the total freedom to create. You and the tool have now become one. You think in the tool, and the tool is an extension of your creative being -- that is, until the next upgrade.

Here are some of the important ingredients for becoming skilled at something (in the computer industry at least):

1) You gotta love it, otherwise forget it and go do something else. Because otherwise everything I say below will be too painful to bear.
2) Learn a ton and never stop learning.
3) Learn from all sources. Subscribe to forums, blogs, etc.
4) Work on as many projects as you can. Work on two or three projects at the same time if you can handle it.
5) Read as much code as possible.
6) Watch how others do it. You can never be good just working by yourself. You need to work with people better than you.
7) Teach. Contribute to the community. Just as a good blood circulation gives you a healthy body, giving your time to others keep the creative energy of the entire community flowing. You will get better pay as an indirect result of that - not that it matters.
8) Learn as many language as you can. Just as knowing Latin can improve your French, knowing different languages increase your expressive power in any language you are currently using.

For example:
You want to assign a value to a variable if it is undefined -
This is how normally people do it:

if (num == undefined) num = 1;

But if you know Perl, you will know this idiom:

num = num || 1; or num ||= 1;

(Of course, don't do it to a Boolean type, cuz then you will always get true!)

9) Get a certification or something. A certification may not get your a raise right away, but it lets you test your knowledge. It forces you to strategize your learning too.
10) Remember that your work is not you. Once you are done with a creation, let it go. Never attach your ego to it, never expand your ego with it. Can you hear your ego says: "hot dang I am good"? This can happen when you start finding yourself better than those around you (that's why these days people love to write bio long before they die). Don't fall into this mental trap. You are just freaking lucky to have a functioning brain that can think logically, that's all. So get it over with.

Just got done with GIJoe Hovercycle project for Hasbro. It was an intense three plus weeks. At the end of the project, I literally could not type anymore. The illustrator and Flash designers I worked with are great at what they do.

Check it out...
http://www.hasbro.com/gijoe/default.cfm?page=games

Click Ninja Hovercycle. This is no Quake game but it can still be fun for an 8 year old GIJoe fan. :)

Fun projec to do:
Write a B+ Tree library that converts datafile into B+ tree and performs fast searches on it. Such thing still does not exist in the actionscript world yet.

Wednesday, October 05, 2005

Product ideas:

Turn kids books into interactive flash apps. Make a software that allows traditional kids book publishers to quickly publish a Flash version of their books by u sing this tool.

Speed calculations - there are a good number of books out there teaching you how to perform speed calculations. Knowing the technique is not enough, you need ample of practice, and making a Flash tool for this purpose can make a great companion tool for the book publishers.

Search Engine for Flash code - Build a client tool where users can easily submit useful code snippets, and a server app where search engine can search based on keyword, topic, etc. There is Napster for music lovers, we need a Napster for programmers.

Movieclip stored in an array:

Let's say you create a series of movieclips and store it in an array. Later when the movieclip has been removed via removeMovieClip, do you think you will get undefined when you check the array element that originally points to the mc?

The answer is no. Obviously, if you were to try to query any of the mc's properties such as _x and _y, you will get undefined, but is there a better way to make sure when an mc gets removed, all references to it automatically becomes undefined?