A short interview I did with Peter Elst for ActionScriptHero.org has just gone live, as part of the aSH redesign/relaunch. You can check out the interview here.
Month / July 2008
ActionScript 3 Notes Are Now Searchable
About a month ago I posted the monster deck of 165 slides from my ActionScript 3 workshop. I’ve had a lot of positive feedback, and have also found myself and my team using it as a quick AS3 reference.
The one thing that was holding it back from being a really useful reference was the need to click through every slide to find what you were looking for.
To address that, I added the ability to search for keywords by using the TextSnapshot object. I had never used TextSnapshot before, but it was quite easy to add keyword searching without modifying my slide deck, which is effectively just a timeline with static text fields on it. It works fairly well, except for a number of bugs with it selecting the found text. For example, you’ll notice it does not highlight text in the code samples. I’m going to try to pin these issues down, and then post an article on using TextSnapshot, along with a handy class for doing timeline searches like the one in my slide deck.
You can find the slides on my talks page at gskinner.com/talks/.
Upcoming Conferences: FF, FotB, MAX
I will be speaking at a number of conferences over the next few months:
FlashForward San Francisco Aug 20-22
I’m excited about seeing what changes the Metaliq crew bring to the granddaddy of Flash conferences. In particular, I’m very interested in seeing how the new single track format of the conference works out. It could be brilliant, or it could fizzle. I’ll be running a 20 minute session on “Why I (Still) Love Flash”. I think it will be a good talk – after over 10 years working with the technology, and 5 years running my company, it’s something that’s been on my mind.
Flash On The Beach Brighton, UK Sep 28-Oct 1
FotB was my favourite conference last year. It had a great vibe, was a lot of fun, and I came away very inspired. I probably attended more sessions at FotB than I did at all the other conferences I went to last year combined. I’m really looking forwards to a repeat this year. I haven’t quite decided what I’m going to talk about, but whatever it is I’ll be sure to bring my game face.
MAX San Francisco Nov 16-19
MAX is always a great developer conference, but this year Adobe is increasing the design presence, which should add a nice balance to the event. I always enjoy MAX – it’s pretty corporate and impersonal, and definitely not as fun as most of the conferences I speak at, but it’s a good opportunity to learn from some of the top minds of Adobe, and get a feeling for the current corporate gestalt. I’ll be doing a talk on “Making Money with Adobe AIR”, trying to identify some of the obvious and not so obvious market opportunities for the technology.
Additional Information on Loader.unloadAndStop
Following my post yesterday about the addition of Loader.unloadAndStop to the Flash Player 10 API, I chatted with Werner Sharp, who is one of the Adobe engineers that worked on the feature (and an all round good guy). Following that discussion, I thought it would be helpful to post a summary of what I know about it, and disseminate some of the information Werner provided.
The unloadAndStop method was added in response to challenges ActionScript developers were facing with halting loaded SWF content, and removing it from memory. These issues were detailed in an article I posted in early April titled “Failure to Unload: Flash Player 9’s Dirty Secret“.
This API addition is not a magic bullet for solving all of the listed problems. What it does do, is attempt to prepare the loaded content for collection, and then hint to the Garbage Collector that it should initiate a collection pass. You can prevent the latter by passing false as the first parameter. It is still easy to get a SWF stuck in memory, but it is much harder to do accidentally.
unloadAndStop in Flash Player 10
Adobe has announced the addition of the new Loader.unloadAndStop() method for Flash Player 10. Here is the description from the beta 2 release notes:
unloadAndStop â This new ActionScript 3.0 API adds unload functionality similar to the unload behavior in ActionScript 2.0. After calling unloadAndStop on loaded content it will be immediately removed stopping all audio, removing eventListeners, and becoming inaccessible through ActionScript.
This new API addresses some of the issues I raised in my article “Failure to Unload: Flash Player 9’s Dirty Secret“. It doesn’t enable content sandboxing, or provide a complete mechanism for explicit unloading, but it does make it much simpler to free a loaded SWF for garbage collection. It’s still possible to prevent a SWF from being unloaded, but it’s much more difficult to do by accident.
Kudos to the player team for putting this in. If you’re concerned about this topic, please help Adobe out by testing this feature and reporting any problems.
Update: You can find more details on the Loader.unloadAndStop feature in my article “Additional Information on Loader.unloadAndStop“.
Source Code Licenses and Flash/Flex
Source Code Licenses
I think there is a critical lack of understanding about the implications of different source code licenses in the Flash and Flex world. As my company has grown, and we have tackled more critical projects for larger clients, I have had to educate myself and my team on this topic.
I think this is a hugely important topic, so I’ve devoted quite a lot of time and energy to research and synthesize information on some of the most popular source code licenses being used in the Flash community today. I would also encourage you to spread this information around, either by linking to this article from your blog, or by sharing its contents with your colleagues. Hopefully it helps developers sharing their code to choose appropriate licenses (I’m getting sick of seeing LGPL source code), and also help the community to use shared source code legally and appropriately.
While I have worked hard to research everything in this article, I am not a lawyer, or an expert on this topic, so I make no claims that it is accurate or correct. It is also written from the perspective of someone who releases free code, and runs a service oriented development shop. Implications may vary for product development.
Below you will find an overview of some of the most common open source licenses. I have tried to list them in order from most restrictive to most permissive.