Saturday, July 19, 2008

Book Review: FriendsOfEd Foundation Flash CS3 Video


Being someone who works with Flash and video as my profession, this is obviously an appropriate book for me to read. I am happy to say that this is a really good book, and touches on some subjects where previous Flash video books have not gone before.

As with all Flash video books, they start with the usual "Here's how to slap in a video, encoded, and running in an FLVPlayback component. Standard stuff, not unexpected, and yes, I'd say obligatory.

They also go into how to create some video content and editing with iMovie and Movie Maker. I was surprised that this actually well done, and had the right length.

Where things start to get interesting is in the "Talking Heads" chapter. It was really good to see a much more expanded explanation of how to approach this common technique. They go into more detail about creating alpha channels with After Effects and Final Cut Pro than I'd seen before. Instead of just showing how to do it, they also discuss how to do it with some flare. This includes applying filters, blends, shadows, video-on-video, and video reflections. The book really goes to some places I really hadn't considered trying with video. There is a nice explanation of using a matrix and how to apply a Convolution Transform.

This book shows masks and effects in much more detail than previous books I've read. They do examples of moving masks, rotoscoping, aging and more. Although I prefer to use After Effects for video effects, this is a good alternative if you don't have video production products to do that.

I like the section on playing multiple videos. It gives you some different ways to do that. The interactive video of the guy slapping himself was hysterical. If you have a kid who likes slapstick, this interactive approach to video abuse is pretty entertaining.

The chapter on going small and going big is excellent. While I'm not into video for the phone -- yet, this is covered fairly well. Much more appropriate for my work is going big, and that's looking at fullscreen h.264. This is the only Flash video book at this time that really dedicates space to this subject, and does a good job. There has been a lot of moaning and crying over Flash Player and it only supporting flv and mp4, and how that's not "acceptable." Grow up already! AVIs, WMVs and MPG (2) are ancient, obsolete formats, and are the video equivalent of the 8-track tape. The difference in compression, bit density and quality is absolutely huge. Don't believe me? Standard video on an HDTV looks terrible, but that is not stopping sales, is it? It's the same thing. If you are a Microsoft guy, and you're trying to do video -- I pity you. In stark contrast, the Apple MOV format is identical to mp4, and their video tools are incredible. They are in great shape!

The last section they have that is unique is using the camera object. But they really go a lot further, using video for boxes, flipping them, and inserting them into various displays. The effects and things you can do are very similar to iPhoto and iMovie effects, only you can do them from Flash. I can just see some security guy wanting to use the motion capture example.

Summary
FriendsOfEd Foundation Flash CS3 Video is an excellent book, with a lot of solid detail. It covers a lot of territory, as far as techniques that someone can use. Other Flash video books cover a lot more video production and encoding than this book does. But if you are doing any video with alpha channel production, fullscreen, mp4, or cameras, this is the right book for you. That's where this book shines.

Thursday, July 10, 2008

Pixar Lunch at ADC 2008


As I've posted here before, I attended the Apple Developer Conference 2008 in San Francisco. One of the most interesting speakers I heard was someone from Pixar Development. Aside from being entertaining, there were some awesome quotes that really had me going "Amen, brother!" Here they are, paraphrased:

"If your application and its architecture are not going to get you where you need to be, it's okay to let it go." Sometimes when a lot of development time has been investing in one's code, it is hard to admit that it is obsolete. Using yesterday's code to add on today's new development challenges can mean compromises that prevent you from creating the best software you are capable of. The more this is repeated, the more limited you become. This doesn't mean leaving a path of destruction. However, nothing lasts forever, and the lifespan of software is incredibly short. Modern development challenges require modern software architectures. Software should be clean and concise, without the workarounds of the past. In the long run, it costs more money to keep tweaking than it does to rewrite it and do it correctly.

"If you are not going to make industry-leading, best-of-breed software -- don't do it. You are wasting everyone's time. Go do something else." This is a bold statement, but it goes to the heart of the aspirations of a developer. If you are developing something that is second rate, you might as well pack it in. The example he used was for the movie Toy Story 2. Disney wanted a cheap, straight-to-video movie. Unfortunately, the people at Pixar working on the project got incredibly depressed, and hated their work. They were taking shortcuts and compromising the integrity of their work, and not fulfilling the promise of what they knew they could produce. So, they went back to Disney and said, no, we will not produce a low quality product. The final result was a high quality movie instead, and happy people, not just at Pixar, but for the audience.

"Build sharp scalpels, not dull Swiss Army knives." This one can get some people a bit defensive. There are those who think that feature-rich means quality. It does not. It is better to make separate products, or even plugins, that are extremely high quality. They serve a specific purpose concisely, and with power. Would you want a doctor to operate on you with a Swiss Army knife? I hope not. This is true for making modern software. It is also true for careers. Technology changes, evolves, and gets better. As new tools and technologies emerge, you should use the best you can to complete your task.

My Thoughts.
I think that many developers become so skilled at certain languages and technologies, that they refuse to use better, more efficient tools to complete their tasks. Some view my career as a Jack-of-all-trades-master-of-none, because I have not become an extreme expert on a particular language or skill set. That requires a complete investment and some blinders, where you have to ignore new technologies to a large extent. I believe that is fairly stupid, and a recipe for career obsolescence.

I think some developers personalize their software. It becomes their baby, and their work represents who they are. Actually, if someone does this, I agree. As their software becomes obsolete, and stops moving forward, so do they. I think this is crazy. I think you always modernize your code, and yourself. I believe you keep your eyes open for the best, most modern tools and technologies you can find to produce industry-leading results.

Technology is not built on bedrock, it is built on sand. The higher you build, the more unstable, and the greater the fall. Adaptation and speed allow you the ability to acquire excellence. Excellence is a constantly moving target. You can place your foot down on the technology treadmill if you want. But if you do not know when and why to lift your foot and move forward, you are not as good as you think you are. Pixar is the perfect example of moving forward and not compromising excellence. I say, be like Pixar!