Sunday, August 3, 2008

Book Review: Manning Adobe AIR in Action

As of this writing, there are more books on AIR coming in the fall (2008). So I was excited to have an opportunity to review a book before its release. So, many thanks to Manning and Emmy Southworth of he Salt Lake City Adobe User Group! Adobe AIR in Action is a superb book, and I would say is the first must-have book on Adobe AIR.

One of the strengths of this book is the flow and pacing, which is pretty consistent, and comfortable to follow. I came to appreciate the way Manning uses it's code samples, with numbered comments, that also correspond to the sentences in paragraphs that relate to lines of code. It's practically impossible to get lost, and that's a confidence boost for the reader.

Another trait of the "In Action" books is the concept->example formula. Easier said than done, this book is a fine example of really pulling it off. I never felt overwhelmed. The sample applications here are refreshingly concise. Many books have examples that have a lot of code that wanders off a little, but not this one. One of the applications is using YouTube APIs, where there's enough dazzle, without extra fluff. The sample applications here stuck to the point, and didn't waste my time.

So what are the highlights of the book?

When it comes to standard Flex/Flash RIAs, there's really no need to consider anything outside the browser. This book concentrates on desktop-oriented programming, the things you need to know. I thought the section on menu types and how they work across OSes was very thorough. They cover many of the gotchas of window types, and things that we tend to expect from a windowed application as far as behavior.

File system concepts, like reading files, reading directories, reading streams, writing files, all are handled well. Excellent examples of all. The copying, pasting, and drag and drop are covered equally as well. The material always feels complete, not rushed.

The database section concentrates in AIR's support for SQLite, and again gets to the implementation in a direct way. There are obligatory pages going over the basics of SQL, and a nice explanation of how to create a database and tables. They show a relational junction table as well. However, I am always a little sad when databases are discussed, and normalization is not. I know that AIR application databases are relatively small in size. But...Normalization is THE most important thing to know - truly know, when building any database. It's a serious gotcha.

I enjoyed the Network communication chapter, which covers HTTP and other network connectivity monitoring. There's only so much to show here, whereas a Flex book may show a lot more about the actual communications.

The HTML in AIR chapter could easily be applied to a normal Flex RIA. It's always nice to see how you can have Actionscript and Javascript communicate via the DOM. There is no shortage of good examples, and they don't disappoint. Obviously the authors were very excited about it. However, the parts that I found most interesting was loading PDF, managing caching, cookies, authentication, and sandboxes. I was really pleased they included this material.

This book has the best explanation of installing with badges and updating that I've read so far. It's easy to read, and takes away any intimidation. If only all desktops were this easy! They finish up with launching an AIR application via file type or browser RIA (Flex or Flash). This functionality of the AIR runtime is really appreciated by those of us who've done desktop development, and done it manually.

Summary

Adobe AIR in Action is a great book that is very concise in its concept descriptions. The examples are top notch, well explained, and easy to follow. They cover the basics of what a desktop application needs: windows, menus, file access, clipboard. They cover using the SQLite database and network connection well. And the installer and automatic updates features of AIR are simple and complete. The best way to describe this book is concise and competent. If you are a web developer, doing a desktop application for the first time with AIR, this is a book that will really help you. For any AIR developer, this book is easily a strong reference/sample book, that will not collect a lot of dust. It's that good, very usable.


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!

Saturday, June 14, 2008

My week at WWDC08 Apple Developer's Conference in San Francisco

I just got back from the WWDC08 Apple Developer's Conference in San Francisco, and it was a fantastic week! Now before anyone starts looking for info from the conference...I'm sorry, I can't do that, NDAs in place.  Let me just say that as a developer, there has not been a better time to embrace Apple technology. I'm not saying that in a small way, I'm saying it in a big way.

Since I work with and enjoy creative media technology, Apple and Adobe have been the places I have looked to. I have applauded Adobe's move to embrace Linux, not just in words, but in real products. But as many Adobe technology buffs observe, the carbon-based Flash Player on OSX is not exactly getting with the program. Apple has been going the way of Cocoa for some time. Don't even get me started about Flash on the iPhone! The ball is in Adobe's court, it's no secret what they need to do. I sincerely hope they respond well.

One of the highlights of the week was our Helius group going to the ballpark to see the A's and the Yankees. The A's won.  The food in the city was fantastic. I think my favorite meal was at Roy's, which is not too far from Moscone Center.


Up until now, the market share of Apple was so small that it was a niche of a career move to develop on. The combination of a very successful OSX, the explosion of iPods, the spectacular failure of Vista, and those extremely-funny-and-true mac/pc commercials, the market is changing in Apple's favor. Look on any college campus, and the cool kids are the one's with the Macs, definitely not the Dells. At the conference, the momentum is obvious.

As a developer, that is a trend I cannot ignore. The fact that the conference sold out for the first time, and about half of the attendees were first time attendees spoke volumes. And after this week, and seeing the direction, and the polish of the development tools, I've come away extremely impressed and energized.

Yes, I want an iPhone! Yes, my head is swimming with information and techniques from the week! Yes, I ate too much! Yes, I had a great week with perfect weather! Yes, I love working for Helius! I'm typing away on my Mac laptop, on my back porch on a sunny, mid-70s day with my wife, our cats, and my son playing in the jacuzzi. Tomorrow is father's day. I'm happy, for sure. 




Monday, May 5, 2008

Autism snippets: May 5, 2008

William Coleman, founder and chairman of BEA Systems Inc., has donated $250 million to the University of Colorado to research neurological disabilities like autism and Down Syndrome. This is the largest gift ever given to a public university in the United States. The Colemans have a niece with special needs. Good news.

Here in Utah, we just had the Utah Walk Now For Autism. Thanks to everyone who participated and donated. This was organized with Autism Speaks, who is also getting donations through Toys 'R' Us.

May 21-25 is the Autism One 2008 Conference in Chicago.

My wife heard from one of the neighbors that a kid was doing a presentation in his class about autistic children. Before the presentation began, the teacher of the class began by saying that vaccines have been proven to have no link with autism. So, with that the student presented his arguments, and won over the class, over the vocal protest of the teacher. Why? He argued that epidemiology was not hard scientific proof, citing the decades of epidemological studies "proving" that cigarettes did not cause lung cancer. His conclusion was that until we have non-epidemiologocal proof, we should be safe rather than sorry. Smart kid! No word on his grade.

For parent of autistic children, wanting to find those answers, it's amazing how aggressive people are in shouting us down. Our society has been well indoctrinated into calling our concerns a myth. But autism is not like the Loch Ness Monster. You can easily sit down with thousands of American autistic children, and solve the mystery. You get a new one every 23 seconds! As demonstrated by this classroom, the propaganda is not working. In this case, the children are smarter than the teacher.

Friday, April 18, 2008

Book Review::The Zen of CSS Design: Visual Enlightenment for the Web


This book has the whole package: layout strategies, using images, proper fonts, special effects.

If you are doing anything with CSS, this book is required reading. In fact, I can safely say this is my favorite CSS book. Why? While most books cover the technology, this book covers the philosophical and design aspects of the application of CSS.

As a programmer, I feel at home with the standard fare of CSS books. However, there is something missing. The element of design is a core half of what CSS brings to us. An ugly page can be done in CSS just as well as a sliced up table layout. But a well designed page, and a well constructed page as far as markup, is what we all want to achieve in the end, right?

If you are not awate of what CSS Zen Garden is, you are in for a treat. This one site single-handedly converted me to CSS, in one day. It was the last time I ever did a table layout. It shows the power of CSS, where the markup does not change -- a true separation of content and design. Check it out, you won't regret it. If you are not impressed, you must be one of those command-line, hopeless types.

The book takes different posted designs, and describes how they work. It's one thing to see the code, and try to figure out what it's doing. This book explains the concepts, explains the code. It's clear, concise, and a fast read. It also makes a great coffee table addition!

Bottom line: This book is incredible. It brings a more complete appreciation for implementing CSS, it brings the design portion in, and gives it a prominent spot. If you are a designer, you will appreciate what programmers can do to set your creative side free. If you are a programmer, you have the function, now embrace form a bit, and make something extraordinary.

Tuesday, April 1, 2008

Autism Awareness Month 2008 - TV Networks and License Plates

In case you didn't know, it's Autism Awareness Month. The big news? It is starting to appear that CNN is making the turn when it comes to autism. I love their tagline, "Why is autism still a mystery?" That is a very good question, and I'm convinced it has some very ugly answers. On the good side, Larry King has done a number of very positive shows with parents of autistic children over the past two months. Bravo Larry!

In general, the major news networks have bowed to their drug company advertisers and CDC talking heads, while making parents of autistic children look emotional and ridiculous. By far the worst is CBS. Last year, Bob Wright, former CEO of NBC, found out that his grandson had autism. To his credit, he and his wife began Autism Speaks, which is a fantastic organization. Since then, NBC has been very careful to show parents in a positive light. Now it's CNN.

The second thing I wanted to note was a story about a girl from Kentucky (where I used to live). Natalie Pope, a 17-year old girl scout, will kick off a new autism awareness specialty license plate for the state of Kentucky. Her younger brother was diagnosed with autism, and this was her Gold Award project. This was not an easy thing to do, and I applaud her for it.

The last thing I want to mention is a long running story of frustration. Once again, Dr. Paul Offit, inventor of thimerisol, is being quoted that a mercury/autism link has been disproven "over and over again." In the face of conflicting studies, and the growing numbers of autism, he's sticking to his "story." Why? Offit makes money when thimerisol is used. His entire medical reputation is wrapped up in it. Would you listen to a tobacco executive telling you that nicotine is not additive and cigarettes don't cause lung cancer? Of course not! Then stop reading Paul Offit. One day, I believe he is likely to be regarded by future doctors as a misguided and reckless. He is our modern day Walter Freeman. Freeman was considered an expert, a hero during his life. History is often very cruel, with a ling list of doctors who are today considered monsters. Offit's name, just like Freeman, will one day be added to that list.