Wednesday, December 31, 2008

Another year...so wat?

It is Jan 1, 2009! Happy New Year everybody!

By now, the new year celebrations are almost over. Some 25% of the people are at work punching on their keypads cursing their boss' for making them work today, another 10-15% of the people are still asleep after the party, some 3-5% of the people are thinking that they will change this year and make 2009 really count as a big year for themselves, around 10% of the people are busy doing things they love and spending time with the family and finally there are 10% of the mass who, like me, think "It is another year..so?"

I will be a year older, may sit at the same seat talking about the same kind of things, it will be the same even this year. Nothing much is going to change. People will still fight, kill and the tolerance levels will still decline. People will still talk about events that terrorize and keep us worried. What is really there to celebrate? "New Year Resolutions" is the most over-rated, hyped phrase, says Jim..and Jim is right!

The above paragraphs of this post might make you think I am a total loser, huh? Well, I am not. I live a happy and successful life with my family. It is just that the whole "New year buzz" has got me thinking a bit. A lot of it seems so artificial to me.

2009-01-01 is a great day to reflect upon the past and make changes to make today better. I remember a saying – "You can't change the past, but you can ruin the present by worrying about the future."

Friday, December 12, 2008

AIR, Water and Fire!

As the world keeps turning, people are getting poorer and the application world is getting richer! The Economic depression is certainly getting messier by the day. Adobe cut about 600 jobs, Google cut some jobs too and looks like that is going to continue for a longtime. Companies that were once in the forefront of business development are stepping careful. A lot of people I know don't know where they are headed. Well, I do hope things get better now than never!
Eventhough I couldn't attend Adobe MAX 2008, due to the obvious cost factor, I made sure that I stayed up with the latest news! "Thermo" finally got its real name - "Flash Catalyst" and the "Flash Platform" was announced! I know I am quite late in blogging about it, but, I am not covering the MAX :)
"Rich Applications" (not just the web!) always interested me. I was really happy when those old "formy" looks were thrown out of the window. "UI" gave way to "UX" and the world is a better place to live. When colour was introduced, application power wasn't lost..infact.. apps became more powerful. We have the best of both worlds - a fast growing powerful web and a richer more functional desktop. I started my professional life as a designer and thought Flash was just a "Splash screen" menace. Well, those were the days of the dial-up! Within a couple of months, I was swearing by Flash (Flash 4 then)! It never crossed my mind, back then, that Flash would become a whole platform - the web, the mobile, the desktop..world domination?!?? ;-) Today, my world revolves around Flash, Flex and AIR.
Eventhough I am only developing my 2nd application in AIR, I've grown to love it. My first app was an MP3 player. I am not really proud of the player, but, its my "Hello World" app! The app (more of a utility) that I am working on currently is called "Fetch". In a nutshell, its a sort of a Favourites Bar which syncs with your desktop, del.icio.us and google bookmarks. It is a simple application to make. I just love working with APIs. My next app is a more complicated one - a Project Management Tool to me and my colleagues with our day-to-day work. Its more of a personal project that I am still in the process of creating specifications and project flow. Theres a lot of studying before that, since, this is sort of custom built. Interesting times ahead!

Friday, December 05, 2008

Flash CS4 - Yet another review.. its different!

Yeah, this is yet another review of Flash CS4, but, its different! Most reviews I came across talked about the same things - kinematics, new UI, 3D, Share my Screen feature, Object-based animation, the all new and improved font rendering engine etc. All these are fine and really..truly amazing and awesome. But, there are those little things that haven't been discussed about much. I just thought I'd put them together. So, here goes..
INSTALLATION: Ok, so, the first thing one notice's is the installer. Installing 888MB worth of an application takes longer than I expected. ON my Vaio, it took nearly 45mins. I am not sure why, though. Also, the 2 file
installation setup is kinda strange. GUI: The new interface I thought was kewl. The panels are still a bit.."grumpy". Personally, I would have preferred the Properties panel at the bottom. Maybe because I am used to it. So, I docked the panel at the bottom. As is the case usually, I clicked the panel header and the panel didn't open. It still sat there collapsed. I tried pulling it up, which, didnt help either. After a few tries, I gave up and docked the panel back to the right-side. 2 days later, I got an idea and tried that out - I expanded the Properties panel on the right-side, undocked it and docked it to the bottom. This time, it worked! The next time I started up Flash..the panel
wouldn't expand. So, I tried the same thing dock to side, expand, dock to bottom, click to expand.. it didn't work. I decided to leave it on the side. The thing is.. usually.. lets say, for expample, I want to change font for 5 static text. I could have the Properties Panel expanded and select each text to change font. Now, if I had to do that, the Properties Panel would collapse each time a textfield loses focus and I need to re-expand the Properties Panel to select the font...takes a minute more now, huh?I love the new breadcrumbs. They are movable and really kewl to move them around in order of preference.
COMMON LIBRARY: This was something that disappeared for about 3 versions of Flash. Now, its back and with lots more. It used to be a pain to search for sound effects, now, thanks to Adobe, we have lots of them! Thats awesome!
COMPONENTS: When the V3 components were introduced, I really thought they gave added a lot of value to the interface. Skinning was really easy! I am still wondering why useful data components like Webservice component and the XML Connector component didnt make a comeback... in a different avatar maybe. Ofcourse, clever developers would make an XMLParserClass and keep it in the code library for maximum reuse :).
CREATE NEW SYMBOL: Did you know that the "Create new Symbol" (comes up when you Insert>New Symbol) window has undergone a makeover? Well, it has..and its something really good. On Flash CS4, you get to select the symbol type from a combobox, which replaces the radio buttons. The panel also includes a link that you can click on to choose the Library folder into which you would like to put the symbol. Its something I wished for (in my mind and heart..not in the official wishlist). Most designers and some developers don't take the time to organize the library. Also, you now have the "Enable guides for 9-scaling" option right below this symbol folder link and the "..sharing" options make it into a "Sharing" panel and the "Linkage" panel has been organized a bit differently. The "Export.." options have come above the "Identifier", "Class" and "Base class" fields. Another thing.. remember your tutor used to always say - select the "Export in first frame" option...? thats now.. "Export in frame 1".
THE INSERT MENU: Have you noticed some of the items disappear from the INSERT menu? Well.. check it out, Yo! "Timeline effects" have gone poof! They have been ravamped to the MOTION PRESETS panel. Simple animation is a mouse clicks away! No spending time on tweening bouncing ball! Ok, so now, the INSERT menu has the "Tweens" - Motion, shape and classic tween.

DOUBLE-CLICK ON THE FPS AREA IN THE TIMELINE TO GET DOCUMENT PROPERTIES WINDOW: If you double-click now, you end up going into the edit mode to change the FPS. You would now have to select the stage and click the Properties Panel. More clicks per second.
TRANSFORM PANEL: The famous Transform panel now has the 3D rotation stuff added. For precise X, Y and Z's..contact the Transform panel.
SEARCH: Thats an awesome feature! You can search the document and you also have a search in the Library! If those symbols are not named "sssss_" or "xyzzzztween" etc.. you can search them!
COPY FONT NAME FOR ACTIONSCRIPT: You didnt notice that in the Commands menu? Go, take a look! I don't know if this is a great feature. Clicking on it would copy the font name to your clipboard..and.. you can
paste it just about anywhere. Its the same as copying the font name from the Properties panel. Thats some of it. I haven't come across more. When do, I shall update the list right here!
To sum up, would I pay some $699 to buy Flash CS4? As a developer? As a budding animator?... I dont know. Maybe I could still use cheaper 3rd party tools.. PaperVision 3D? Hmmm. I was just taking a sort of an opinion poll among my friends and colleagues the other day we saw the demo. This is the majority feeling! Whatever it is.. I still love Flash and would still buy it when I collect enough money! :(

Tuesday, November 25, 2008

Adventures of a "Click Here" button

Most people in the advertising world would know what feedback does to an ad. It makes the ad more innovative and intuitive (to be read as "horrible"). We interviewed a "Click Here" button on a 300x250 pixel banner ad recently and the it had lot to tell. The interview had just one question (since it was a loooooooong answer, we had to cut it short). We asked the button:

Q: Hey "Click here"! How's life?
Ans: Sucks big time, man! I don't know what it is to be ME anymore. My life started out quite well in the hands of a pretty good artist. He gave me great shades, a splendid build, bold colours and my name - "Click Here" (in sentence case).Things looked good when I went into my first day on a grey-ish banner. We blended well in greyness and everything seemed... cool! I was basking in my aura, when I was picked up in the banner and whizzed off through the information superhighway to several mailboxes across the world. I saw light as my parent was woken up and played to the final frame, where "yours truly" sat looking handsome! The human (who looked blurry eyed and drunk, by the way) looked at me and growled. He uttered something like - "This button looks tacky..and..umm.. out-of-place. It must be changed." My rectangles and gradients grew heavy as I was shut off. I didn't know what happened till...this other guy saw me- A very elderly British man, I guess. He commented - "The banner is ok.The button is ok too, but, it needs some improvement..." He went on for an hour almost and kept replaying my dad a hundred times, till, my colours spun and I felt ooozie!

In a nutshell, out of the 20-30 people who saw me, there was just a single lady who kinda liked me. The rest had the same comment - "tacky, needs brighter colours, needs improvement...blah blah blah.." After about 3 days of circling around, I was taken back to the good artist who created me. Once again, my life was opened, ready to be changed...and.. PhotoShop is a lovely tool!

The good artist was kinda angry at all the feedback he got..or.. he had a tough life. He choked me with lots of colours and roughened me up with some really surreal texture. My new "look" had to be looked at again..more seriously. He poked at me with those brushes and pens and pencils..you name it! Cut a bit off me and added new bits. I became shiny for a minute and for the next minute I was all messed up. After about an hour of "button-handling", he called another person to stare at me and do more violent things. For about 2 minutes everything was almost transparent about me. The two people quenched their artistic thirst and took me places showing me off. Well, the new look (I am not even going to start on it!) was accepted by the "internals" they said. Personally, I think the "new look" was awful, terrible, not even close to being a real button! My body had lost its colour and my name was displayed boldly - "CLICK HERE" (this time it was all in uppercase) Once more I made my way through the information super highway and found the same kind of snarls and grunts and a hoard of complaints. Aren't people ever satisfied? But, this time it was a new ball game. This time it was all about rearrangement. They thought things didn't "fit in" or was "not in place". DUHHH!

Here we go again! this time, I wasn't going to get the Photoshop treatment. It was going to be the whole thing. Dad was changing colours, the textmates were moved and I was being hassled. In 5 minutes, my location was changed between frames 1 and 250!!! 15 seconds of relocation! Finally, I was released..or..atleast I thought. A copywiter came up with "new copy". He wanted to fit in some 5 new lines in the frame that I lived. Between my X and Ys, I couldn't calculate how it could happen! I was also renamed from simple old "Click Here" to "More details", "Find out how", "Go", "Learn more"...the circus started again...

NOTE: Sorry, but this interview had to stop coz someone just deleted the button!

Sunday, August 17, 2008

Going forward with Backward compatibility

As programmers we've all had days when we get caught out by the "compatibility factor". The client's requirements state that the product needs to support every single version of the target OS created so far and shouldn't misbehave when the next version releases. So, we add in that little statement that go with each release note that says – "Product Testing on Microsoft Windows 3.x, 9.x, NT, 200x etc." When a bug is reported in a particular OS, and your Project manager questions your very existence, you can't help it but say - "I wasn't born when Windows 3.x existed and don't know what the next version will be like". At the end of the day, when you sit around with your team thinking on the "Howtos", its sometimes becomes a conclusion that the language/script in which coding has been done refuses to be backward compatible.

Recently, I got caught out using the simple "getURL" in Flash. After AS 3.0, I haven't really done much with the real basics. I had to use it since the functionality targeted Flash version was 7.0. Now, I couldn't be doing something wrong with getURL.. it flows with my blood! So, I ventured out into the net and found:

Adobe Technote: http://www.adobe.com/go/50c1cf38

The solution didn't work either. I didn't have enough time to work on it and things came to the crunch. There were only two ways to solve the problem for local testing:

  1. Change the "local playback security" setting to "Access network only".
  2. Add the domain path to my Flash player's security settings panel.

I opted for the first method. Anyway there weren't any external files that I was loading. So, it was mission: accomplished. But, there have been times when it took more time to solve a single backward compatibility/forward compatibility issue than code a whole module in. Like, for example, there was this product that we were working on which used a particular font. Please note that the product itself was made during the era of Chengiz Khan, and, we were just creating a minor version upgrade for some of the functionality, we didn't really have the time to work on porting the entire code to a new generation platform. Hence, we suffered quite a bit. The problem was simple – Windows Vista refused to accept installation of an older version of the font that we needed to use. Yep, it was a default OS packaged font. The impact would be mis-alignment of text almost everywhere in the product. It is something we never though would happen. It did! Murphy was right!

The gurus of the business say that it would be better to use the new and throw the old out of the window. The reality is.. we still need 'em old clothes and it needs to fit us perfectly!

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