Saturday, May 17, 2008

“Astro” is here!

"Astro" aka Flash Player 10 is here! I downloaded it off Labs (http://labs.adobe.com/downloads/flashplayer10.html) yesterday night. I was excited to see the Demos posted on: http://labs.adobe.com/technologies/flashplayer10/demos/ in new light! What excited me a lot was the new text rendering engine. A couple of things that I liked and saw a lot of possibilities were - the 3D engine, new streaming abilities for video and audio that adjusts video quality according to bandwidth available, improved hardware acceleration (haven't experimented with this feature..still!). Yeah, you will find the feature list on almost all the sites that talk about "Astro".

It was during the heydays of Flash 4.0, I was talking to a friend (another one in the computer-man's chest!) and the whole concept of having interactive stuff on your site was beyond imagination. Those were the days of the dial-up, when download speeds were in the "." (Decimals). I was talking to the same friend yesterday. He still hasn't picked up Flash as a development tool (more of a .NET guy!), but, he knew what I was talking about. I was actually surprised to see that his laptop already had "Astro" on it! Talk about fame and penetration rates. On the other hand, a lot of people I interact with on a more daily basis don't know what the technology is all about and how it works. They are still getting used to the transformation and spew slang when they see the infamous "loading…" screen. Of course, you don't need to expect them to know about the technology if they aren't related to it in anyway.

Now, in my field – Advertising, we have come to Flash Player 7 as the max requirement. So, when "Astro" releases, I am hoping that it reaches Flash 8 at least. I am sure "Astro" will be handier to us in promoting products and giving the user more by telling him and by being able to show him more of products. That's where the 3D engine becomes exciting. Creatives can be more dynamic and that calls for a whole new level of user experience – engrossing! The streaming capabilities of the new player also reduce a lot of burden when it comes to production of video –based promotion material. The way Flash player has been handling text has always been a concern. This has improved and been added on in "Astro".

My most wanted feature is the File API. This allows you to popup a file dialog and load the selected file at runtime. Does this mean that you can save file to disk? Well..

Friday, May 02, 2008

Welcome to your digital life!

Adobe announced the "Open Screen Project" a few days ago and Microsoft had earlier announced the "Live Mesh". I've come across posts that compare the two..uhh.. three (Don't forget Google Gears!). But, I guess the three of them are different types of platforms. I haven't used the three of them. Still in the waiting list for the Tech Preview of "Live Mesh".

As I understand it, Adobe's Open Screen project creates a common Flash/AIR platform to deliver rich experiences over a variety of devices - PCs, Television, Mobile devices etc. For the developer, it makes it a whole lot easier to build and deploy applications over a wide variety of devices. Hopefully, it should be "Build once and deploy on all" (remember iPhone! - http://www.techcrunch.com/2008/03/05/adobes-flash-not-good-enough-for-steve-jobs/). For the user, he gets a rich experience with the added benefits of portability. Which is really kewl!

The Live Mesh is a synchroization platform, wherein, users get to synchronize data across usually disconnected devices. So, now you can synchronize between your personal laptop, your home PC, work PC, Mobile devices and the Mac that sits in your room. Oh! ok, doesnt that sound like the "now in beta" Windows Live FolderShare? Naaah! what sets the two apart is the word "platform". Mesh combines several web services that sync data over a "Cloud". So, you need to install some sort of a client software that enables the synch. Ok, so we have been talking "users" till now. For the developer, we get to build applications that synch data over a wide variety of devices using the web services

Its "Synch" Vs "delivery" here. It will be interesting to see what happens next. Being a developer, I would certainly love to play with both platforms (APIs..slurppp!), but, I guess its early days to really build an opinion on things. Do I smell a Flash VS Silverlight thing here..somewhere?

Happy coding!

Thursday, May 01, 2008

Sarah Cynthia Sylvia Stout did not take the garbage out!

Deadlines are becoming outrageously tight and developers are left as last men standing. Products run through numerous loops of testing just to crash at architecture levels. Time crunch has become a major issue that most of us face and find hard to handle. But, this isn't an excuse for poor coding and improper usages. We can't call ourselves as "Programmers", if we don't know to code clean and clean after coding.

In the Flash World, a lot of programmers blame the Player for not doing its work when needed, but, if you take a look at the code, you will find a lot of misses – onEnterFrame not being deleted after use, Intervals not being clears, typing not done for variables, having insanely numerous variables – a lot of which don't get used..and the list goes on.

The Flash Player has evolved with time and become a lot better when it comes to memory management and garbage disposal. The built-in garbage collector removes unused objects from the memory, enabling objects-in-use to use the memory. The Flash Player 9 adopts the strategy of marking objects having active references. Objects that aren't marked are automatically considered inactive and removed from memory when the cleaning cycle runs. Yeah, it's a "cleaning cycle", which means that inactive objects are not removed from the memory immediately, but, they are removed when the next cycle runs. There seems to be no way of knowing when this cycle runs. Hence, code needs to be written in a way that makes sure that memory is managed efficiently by-

  • Removing objects and references to objects that are not in use.
  • Using memory monitoring code. We have the handy System.totalMemory to its advantages. When I suggested using this to a friend, I found every function in a class having an IF statement checking memory usages. Man!
  • Only program for what is needed. I've seen programmers implement what they call "Flexibility" to their architectures. This "flexibility" is just code that lies waiting till the real feature is brought in after 20 years and 20 versions, whichever comes first!
  • Run a code clean up cycle after getting in all the functionality. It helps you relook at the code and make improvements. There would have been things that could be done in a different way.
  • Resource hungry code needs to have clean ups like – onEnterFrames need to be deleted, objects should be nulled after use.

UPDATE: I found this article on Devnet - http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html. This explains things in a better way!

Happy Coding!


 

A day with the big daddy!

The long wait was over! The Adobe AS3 Tour finally got here. A whole day of "code talk"...that was exciting!

Any newbie venturing into the world of ActionScript would surely know a few people out there and consider them demi-gods/gurus/mentors. Colin Moock has always been up there for me. His books are great, simple and easy to understand. You don't need to keep a "Jargon for Dummies" book handy while reading 'em. I follow his ways when I take seminars and sessions – keep it simple, but detailed. I have been in the field for more than 5-6 yrs now and I've come a long way from being a person who just tried things out coz it was the need-of-the-hour to a person who can really code and be technical about things. I owe a great chunk of what I know and do to this man! So, getting at what I am trying to get at – to see the person you admire...made my day.

The session targeted people who were just starting out (know a bit of programming basics), intermediates and advanced users…well…that's what "ground up" means, so it was something I expected. Being a "ground up" thing didn't sound boring to me, since, I haven't studied programming formally and it tightened the screws a lot more and took away a lot of inhibitions I had about things.

Thanks Colin, for the great session! Do get well and come back soon J