Sunday, March 29, 2009

ickydime Blog Birthday: 1 Year

A year ago today, my blog embargo was lifted and I set out to find peace justice and happiness... or something like that. Instead I found a bunch of geeky guys who enjoy talking about the same things I do ;). That has been the greatest take-away of this experience so far... being able to make many friends and connections in the community that I would not have even met without this blog.

Now with the mushy stuff out of the way, lets get down to the dirty business. Who the hell reads what I have to say... better yet, why?

May 08 was my first Month of Analytics. I wrote 19 posts and received 919 hits. I sent countless reminders to family and friends, "HEY LOOK AT ME! I AM BLOGGING!". Funny. They would visit, bless their hearts, and then they would say "I don't get it".

A lot has changed since then. This will be my 7th post of March 09 and I am already over 8000 hits on the month. Last week I wrote only 1 post and received 1,886 hits on the week. For you non-math majors, that is double my entire first month while taking only 1/19th of the number of posts to get there. So if I am not spamming/begging my family and friends anymore... how am I tricking people into coming here?

Here is what the analytics say:
30,000 hits came from google search.
5,000 came directly
2,350 came from FlashBookMarks (thanks Ringo!)
2,000 came from Adobe Feeds.
1,500 from google referral
600 from Fullasagoog
300ish from Netvibes, reddit, and actionscriptclasses
241 from 8BitRocket. Their weekly Flash Game Development Inter-web mash up is a must read.
230 from Yahoo Search ***
175 from Flashkit
... and then all kinds of blog readers, twitter, linkedin, and a few friend's blogs such as AtomicBigWheelShow and GamingYourWay (thanks squize!).

Other fun facts:
Alexa Rank: 613,620
Technorati Authority: 12, Rank: 471018
Google Page Rank: 5

My main question from these numbers is how is Google's search raking in over 30k while Yahoo Search is sitting at 230 on the year? My google rank is high... much higher than I would expect after one year. I am guessing that the fact that I am using Google Blogger plays a big role in this. I can't prove that. But its a fair assumption that Google's search algorithm may be more friendly to blogger users than say yahoo. Other than that explanation, I have nothing. May yahoo knows I use their email as my junk account and I use gmail as my real one... maybe they hate me for it? I dunno. But if anyone can shed some light on the subject, I am all ears... or eyes (since it is light).

Well. Happy B-Day, Blog. I plan on continuing my current direction... which is forward. I hope to continue mingling with/infiltrating the Flash community. I hope to continue sharing my bumps and bruises and what I learn from them. And of course, I hope to continue my search for peace, justice, and happiness for all... or something like that.

Thanks everyone for stopping by!

What do Flash Developers Do? We make Cool Shit

Easy, I know, I know! We make interactive media.

Ok, that is an alright answer for people in our cozy Flash community bubble... but what about for the other 99.9% percent of the population? How do you explain to them what we do?

It is not as easy as it sounds. Don't believe me? What do you answer when your Aunt asks you what you do for a living? Seriously, you can't say I am a Flash Developer and expect to get anything back besides a blank stare and maybe an "oh, that is nice".

I know I am not the only one who gets this response. Go to ActionScriptHero and read how people introduce themselves... it is pretty entertaining.

It seems that most people don't want to try to explain it and just settle with the most generic answers possible: "I work with computers" or "I make websites". OK, I guess that is true. But when I hear "I work with computers" I think IT. And when I hear "I make websites" I think of static corporate sites.

If you pick either of those answers to use at the bar, are you getting follow up questions? I doubt it. Move along now, this guy is boring.

Whats funny tho is if our media outlet of choice was TV instead of computers, the response would be completely different. Answering "I make commercials" would receive a completely different response than answering "I make websites". People get excited about TV. They want to know more, they want to be close to it, learn about it. It intrigues them.

Why is it not the same for the web? TV and the web are merging... they both are part of the entertainment industry. We can do everything TV does, plus make that shit move, personalize it, and add Bling Bling. Yet, somehow making a national TV spot is much more interesting than making a national microsite or commercial game for the same company.

The only reason I can come up with for this is that people don't understand what we do and we are inept at explaining it. "Interactive Media" is not a household term. "Microsites" might as well be a foreign language. If we can't use those words as a foundation, how can we possibly expect to get someone to understand "Flash Development".

Here is the solution I propose: We replace the words "interactive media" (since they are bound to make your listener to fall asleep instantly) with "cool shit". So what does a Flash Developer do? We make cool shit.

I dunno if Oxford will accept that answer tho... admittedly, "cool shit" may not be the answer. But what is? How do we get people to understand our industry and recognize it as being as interesting as the rest of the entertainment industry?

Tuesday, March 24, 2009

OnLive: Breaking Down More Barriers

If you haven't read anything about OnLive's cloud computing video game service, check out IGN's introduction or the Technology Review's take.

The idea of being able to play any game (or run any workstation) from a PC, a MAC, or just a plain POS is pretty incredible. However, what shocked me more was how close to reality this idea is becoming. International Beta this summer? Live winter of 09? seriously??? Shouldn't there be more barriers? You say it works on DSL??? Just a one megabyte download???? (to put that into perspective, Flash Player 10 is sitting at 1.8MB).

Sorry for all the question marks... but I guess I didn't realize how far we had truly come. If they are streaming HD quality video while reacting to user's input at a near 60fps then we are at the doorstep of interactive TV.

I guess the only question now is, do we call it a TV or a computer? Tomorrow's generation won't know the difference between the two and it can only have one label. Maybe we will create a new label? All I ask is that it doesn't start with a lower case "i" and that it doesn't end with "2.0". Other than that, I am game.

Friday, March 20, 2009

The Basement's 2009 Show Reel

The title explains it all... check out our latest reel.

Wednesday, March 11, 2009

There is no such thing as a Master of Flash

I'm in the process of reading Outliers, Malcolm Gladwell's latest book. Without giving away anything you can't find on Amazon... the book covers a wide variety of topics while exploring why some people succeed and why others do not.

In one of the earlier chapters he quotes Dr. Ericsson's 10,000 hours theory. The premise of the theory is that you need to practice for 10,000 hours before you are a master of anything. Gladwell goes into detail by referencing superstars such as Bill Gates, Mozart, Bill Joy, and even the Beatles.

I'm not going to sit here and argue for or against the theory. Plenty have done so already... just google it... or read Outliers.

For the purpose of this post, lets assume for a second that it is true and that mastery comes after 10,000 hours of practice (or basically 10 years). Using that rule, can anyone master Flash?

Flash has been around for a little over 12 years, so theoretically someone could get their 10 years in. However, the environment is changing so rapidly that what we are practicing now is completely different then what we were doing a few years ago. So the question becomes, do our number of hours restart as technology makes leaps and bounds?

Think about when you had to switch to AS3. Sure what you learned in AS2 helped make the transition easier, but did you jump in and feel like you picked up right where you left off or did you feel like you had to relearn a lot of things? Similarly, with Flash 10 and 3rd party engines such as Papervision3d and Away3d, do you truly feel like you are mastering the subject or are you just trying to keep up with the latest build?

Sure, people can become master programmers (such as Bill Joy) or even master digital artists (I would throw Bert Monroy out there), but can anyone actually master Flash... or in more general terms: online interactive media?

We have some extremely talented people doing some extraordinary and mind blowing work. All you have to do is follow the blogs, FWA, and conference finalists to see what is the latest and greatest. However, are any of these sites going to be considered master pieces in 50 years? 100 years? Are there any developers that will stick out as masters in the field?

To put it in perspective... have we seen our Sistine Chapel? our Mona Lisa? Do we have our DaVinci or our Mozart?

What do you think?

Friday, March 6, 2009

Reasons to Prefer Eclipse over FlashDevelop (Rebuttle to Iain Lobb)

Iain Lobb just wrote a great article called "10 reasons I prefer FlashDevelop to Eclipse and FDT". I think he has some good points, but I disagree with his conclusion. I started to write a comment... but being long winded I got a little out of control... I seem to have a habit of that lately. Anyways, please read his article before you check out my response.

First off, my info on FDT and FlashDevelop is dated. So if there have been major advancements in FlashDevelop over the past couple years then please correct me.

I used FDT within Eclipse for AS2 and loved it. At the time I was also programming java servlets so it was great to toggle between the two in the same application.

When AS3 came out I gave each of the programs a test drive and eventually went with the Flex3 plugin for Eclipse. I found it had everything the others had and more... (at least at the time).

As far as your arguments go...
1. can't argue that. that is a very good reason to use Flash develop.
2. Forcing the programmer to type "this" doesn't bother me. Its good practice and cleaner code to be typing "this" on class variables anyways.
3. Eclipse automatically adds imports when you define a variable's type. If I say "new MovieClip()"... nothing gets imported. But if I say "var a:MovieClip" then MovieClip gets imported.
4. It doesn't seem that hard. Just right click and do a refresh. But yes, you do need to specify which folders are sources. However, I see nothing wrong with this. It keeps everything clean.
5. I found FlashDevelop very annoying to switch between projects. In Eclipse if you have all of your projects setup in a workspace, you don't need to move anything around. You don't need to copy a GreenSock folder into each of your projects... just keep one in your workspace and have Eclipse target it. You can code multiple projects without having to switch anything or move anything.
6. You may have a point on the rendering speed. Haven't tested them side by side, but if there is a delay in eclipse it has not bothered me.
7. ctrl-f opens an easy to use search box in eclipse. Not to mention the ability to right click on any variable and find all the instances within a Project or within your entire workspace. Plus the ability to highlight code makes searching less common. And I love the ability to hold ctrl and just double click a function to open it up. Not sure if you can do that in FlashDevelop.
8. Sure there is a learning curve. But once you have it, I don't see you going back.
9. You can do this by downloading a plugin. Lee explains it here.
10. Buy some glasses ;). You can change all of the appearances of colors and fonts and what not by going to Window and Preferences. Pretty simple. I don't see you doing this on a daily basis. Just once and you are ready to go.

As far as my arguments for Eclipse (some are included above).
1. Profiler
2. Easy integration with SVN/CVS
3. Code Highlighting
4. Promotes more organized workspace. No duplicate libraries. Easy to jump to different projects. Easy to find calls from multiple projects.
5. Large number of plugins available. Can customize to the nth degree.
6. Works well with other languages as well including Java, Javascript, XML, etc.

Not sure I have swayed you. In all honesty I think they are both great products and you can't really go wrong. However, if you give Eclipse a chance and get over that learning curve I don't see any reason to switch back.

Wednesday, March 4, 2009

Flash Garbage Collection (IE, FF3, and BitmapData in AS3)

Ooooh Garbage Collection, how I love thee.

During the testing phase of a current project we had many reports of virtual memory errors. Faaantastic. So I load up Firefox and click around the site while watching my memory using Vista's task manager. Not much is happening. I click around to different pages. I click on every video. I try to click on everything as quick as possible. I try to sit through every video. Nothing. No spikes. Sure it jumps around here and there but nothing significant. My gut instinct is A. How much crap do these people have open on their computer? and B. How old are their computers?

Although those may have been valid questions, I was completely off. Turns out with some more digging that every person who had a problem was using IE. So I load up IE. I don't even have to click on anything and I can watch the memory climb all the way up to 1gig before it drops down to 100mb and starts its ascent again. Holy crap, 1 gig???

The culprit was easy enough to find... we have a reflection on the home page that is getting updated onEnterFrame. If the memory is going up and I haven't even clicked on anything, that has to be it. For the reflection we had 1 bitmapData that was getting disposed every frame and then set to a new BitmapData object. I didn't code this, but at first glance it seemed to make sense. The dispose should get rid of the data and then a new one is created. I knew from Moock's book that the Garbage collector works on its own timetable, but I had no clue that it would allow the Player to reach 1 gig before it ran. I also had no clue that it would behave differently in IE than it would in FF.

It was easy enough to fix. I noticed the width/height of the bitmapData was never changing so there was no need to dispose the old one and create a new one. We just needed to create one bitmapData in the constructor and then call the draw function onEnterFrame instead. Memory leak or not, this was much more efficient than destroying and creating a new object on every frame. This kept IE sitting at a steady 70mb instead of the whopping 1gig.

After this exercise I decided to brush up on my garbage collector knowledge. I highly recommend checking out Grant Skinner's articles: Understanding garbage collection as well as Resource management strategies in Flash Player 9.

One gem I took away was that you need to remove the enterFrame listener on any sprite that you are removing, EVEN if you did not add a listener yourself... I didn't realize that the built in listener could cause the object to stay in memory.

Anyways, it was a good exercise and I thought I would share. Morals of the story:
1. Test on multiple browsers and environments. You can't assume Flash will behave the same in each.
2. Don't create new objects when you can just alter an existing one.
3. A full understanding of how garbage collection works is very important and worthwhile to research.