Tuesday, June 30, 2009

The Componentized Website Project

When I started out as a web designer/developer (was a bit of both!), the web was looked upon as something that provided information. A lot of my clients believed that information needs to be as detailed as in a book and ran into pages sometimes. At most times, the design itself needed to be changed into something very simple and straight forward. For example – A header-based/left-hand sided navigation and the rest of the page was left for the vast content. These sites were, what we called, as "Open end websites".

Things changed a bit when we got into what we called "Themed sites". It was something we borrowed in concept from 2Advanced. They had theme names for their websites, like, for example, the current website is called "Attractor". Clients were still pretty optimistic about the usage of Flash, so, it was all mainly HTML/PHP/CF/ASP. Design took the centre stage and everything had to fit into the design elements. Basically, we presented the clients with stunning designs and asked them to fit their content into it..or..else.. it would look crappy! It was a good success!

As Flash climbed the client charts, we started doing the entire site in Flash. Let us just say that my experiments made me what I am today!

In the beginning, I was laying out the pages in frames..like a banner and jumping to and fro on interaction. It was kind of stupid considering that Flash could, by then, load content from text files. My websites were very static. It was a money making idea. I could not only charge for creating the website, but also the actual updates and maintenance. Well, my brains were boxed and I was kinda fed up with the constant emails. So, I started making things more dynamic. Yeah, "prototypes" and "Smart MovieClips" to the rescue!

By the time AS 2.0 was in, my world revolved around "dynamic". APIs, Web 2.0, streaming, XML, web services..well.. these terms meant that I could create "Pods/Components" that displayed specific information on the website. The information could be pulled from feeds on the same server or other servers (with some help from .NET/PHP) and displayed using a custom textdisplay component, Images can be pulled from my Picasa or Flickr account, Tweets or Social networking info can be aggregated and displayed in other components. These components can be skinned and reused with ease. In fact, the client himself could do it with a bit of training on the XML config files.

Currently, my project is to create custom components for the website that are commonly used –

  1. Text/Content area that would load and display rich textual content from external files.
  2. Feed pods aggregating some feeds from other sites.
  3. Links component that will display links of friends etc
  4. Social Networking pods for Facebook, Twitter and MySpace(?) displaying the latest feeds from the platforms
  5. Photo Gallery component can be configured for either using public streams such as Picasa or Flickr, or, display from a custom XML based feed.
  6. Contact component that will contain text based information, contact form and/or "Connect with me" links to directly open IM windows.
  7. Last but not the least the UX container component that will load the backgrounds and other UX elements.

These components can be enabled or disabled from a "Website Template Configuration" file. Nah! It won't be something that people will have to do editing code chunks or XML tags. It can all be done from the admin console with a few clicks. The engine will take care of the rest.

Kewl, huh? So, how far is this Project gone? Well, parts of it are already under development. The Admin side is a whole huge chunk! L

Monday, June 08, 2009

Installing PHP on IIS 7.0?

Installing PHP on IIS 7.0 (Vista) for the first time? It is quite a rollercoaster ride. I struggled for about 30 minutes and finally got around to solving it after quite a bit of googling around. Here's the easy way then:

  1. Download and extract the latest Windows ZIP package from: http://www.php.net/downloads.php. Don't download the installer.
  2. Extract the contents of the zip file to your web root folder. It would be something like C:\inetpub\wwwroot\PHP for example.
  3. Now, first rename the php.ini –recommended file to php.ini
  4. Open the php.ini file to edit
  5. Uncomment:
  • fastcgi.impersonate
  • cgi.fix_pathinfo
  • cgi.force_redirect
  • open_basedir – Put the physical php application path here withing double quotation marks. For example – "C:\intepub\wwwroot\php"
  1. Install Hotfix from: http://download.microsoft.com/download/3/0/c/30ce6281-59e5-4315-9d9f-0a14bec95bbf/Windows6.0-KB954946-x86.msu. You will be prompted for a restart at the end.
  2. Once the machine is back after the restart, open the IIS Manager (type inetmgr in your Start > Run). With the Home location selected, click on Handler Mappings.
  3. If FastCGIModule is already present, remove and once again click on Add Module Mapping and enter the following:

    Request Path: *.php

    Module: Select FastCGIModule (if this is not present follow the steps given in point 9 to follow)

    Executable: click the button with the "..." to browse to the location of your PHP app path – for example, "C:\intepub\wwwroot\PHP" and select the PHP-CGI.exe file

    Name: PHPViaFastCGI

  4. If the FastCGIModule is not present in the Module drop down, follow these steps:

    1) Go into "Modules" dialogue at the Home location,

    2) Choose the "Configure Native Modules" option on the right pane,

    3) Choose "Register" on the next window, and

    4) Insert "FastCgiModule" in the Name textbox and "%WINDIR%\system32\inetsrv\iisfcgi.dll" (Replace %WINDIR% with your Windows path. For example C:\Windows). Easier is to use the navigation button to navigate and select the file mentioned above.

Once these 9 steps are done, create a php file to check if it works. It should.. otherwise there must be something else that has gone nuts! J

Now, people who know me must be asking the big question – "Arun? PHP? Not .NET? What happened???" Well! Let us just say that it was a fortunate turn of events that occurred. J

Saturday, May 30, 2009

Sony Ericsson W705 - review


Ok, so that is the way the SE W705 looks. I wanted a red one, but, couldn't get my hands on one due to lack of stock, hence, I settled for the silver. Later on, when I saw the red model, I knew I had made a good choice of colours. I have been having the phone for about 2 months now and that is a good and long enough time to really get into the phone and write a review about it. So here goes.


Music in us:


The phone is another of SE's walkman offerings. Being a fan of good bass, I must say that the sound quality is really good! The in-ear earphones cancel the outside din to give you a good music experience. Couple that with a 4GB M2 card that comes along with it, you are ready for your long walks, runs, jogs or whatever! I still have about a gig free on the card in spite of having a lot of songs on it. That's enough about the walkman! The phone also comes with a list of other jaw-dropping features. You can organize and manage your music using Bluetooth, the data cable of simply pull out the M2 card push it into your card reader and dump songs onto it. I prefer the data-cable transfer. I must say that the transfer has become fast compared to yester years. I used to have the W300 previously and software transfer sucked on it.


Interesting Features:



  • Connectivity: 3G HSPA Connectivity, Wi-Fi, Bluetooth, Data cable, GPRS class 10

  • Screen: 2.4" QVGA

  • Misc: Google Maps, Track ID, Games (with shake-control), NetFront browser, Walk Mate, RSS reader, YouTube, Video Call

  • Camera: 3.2 MP with LED flash

  • Slider panel for keyboard

I must add that it is one of the cheapest phones with WiFi. I used to have an ASUS P527 Smartphone, meaning to say, I don't really regret giving it away.


Browsing on the phone using the NetFront browser that is built-in is easy and quick. With a big screen, you can pretty much do most usual stuff. I use my GPRS a lot and haven't really had any issues. I use the Email messaging to send/receive my personal email. This is an old feature and I guess the server handshake has improved over the period too. Sending emails is faster and doesn't get stuck like the old times.


I love Walk Mate and wish it had some other features I require. I walk a lot and it helps me measure and match up to the number of steps I take each day. I wish it showed stuff like calories burnt or have a facility to upload to a server where I can keep records.


The RSS reader has been around for quite a while. I really have not much to say. Its a good feature if you are an RSS person!


YouTube app is useful on those journeys that you get bored.


I didn't buy the phone seeing the camera. I already have a Sony DSLR. I must say that I am not a big fan of the built in camera. SE's have had better cameras. The picture quality is quite dull and even daylight photos aren't that great. Once you take a pic, you can send it out to people via the usual modes and you can also send it to your MySpace or Picasa. I haven't been able to send any pics to my Picasa. Apparently, it sends it out as a picture message. Pictures can also be Geo tagged. Video mode is ok. You can upload your videos to YouTube.


Performance:


The phone hasn't slowed down, despite, the memory fills. It gives about 4 hrs of talktime on 3G and over 10hrs on GSM networks. In more layman's terms, I need to charge the phone only every 2 days according to my usage. I call less and music more. J It is very reliable, functional and has a very good performance.


Conclusion:


Like I said, it is a good buy for its features and cost. It has no GPS, touch screen or smartphone stuff, but, it delivers on a lot of other fronts. It has a sturdy stylish brushed silver body which takes a lot of falls. It has fallen twice from my hands already and doesn't have a scratch. It has a typical SE user-friendly interface. Good music player and awesome connectivity options. So, what are you waiting for?




Wednesday, May 13, 2009

Flowers don't matter, perspective matters..Think about it!

Being in the interactive advertising space throws up a lot of stuff - good, bad and the ugly. When you talk 100% compatibility to everything, it broadens everything, including your work timing and waistlines!

Some of the stuff that are valid:
1. Banners usually use a max of flash 6 and 7, when the real world is playing with flash player 10. While Adobe's charts at: http://www.adobe.com/products/player_census/flashplayer/version_penetration.html show high penetration stats for FP 7 and above, it seems like a dead day making banner for lower versions than 7 atleast. Stuff like PaperVision and Away3D are not really happening stuff here.

2. HTML pages need to be compatible to web standards and compatible to all browsers - IE, FF, Safari.. u name it. This is a good thing! No complaints!

3. Emailers don't take that much of credit! We have had a lot of trouble fixing up emailers. Different email clients have put us in tight spots. Lotus Notes is the biggest one! If you got it all right on everything else, you'd still end up putting in those late hours trying to fix a table alignment issue for Lotus Notes 6.5 or 7. Just importing the HTML page into Lotus Notes gives different results to blasting the emailer.

4. "Innovation" is a big word. If you could innovate in a limited space, you'd still have problems putting things through the grind. Things are usually more complicated than just putting stuff into slides and taking a client through them without having to say too many things at the same time.

..more to come!

Monday, April 27, 2009

Idea? Or Standards?

As most people who love the web as a developer/designer, I too started my days creating websites in good old HTML. And as most people, I used Microsoft FrontPage at first and then moved on to Adobe (Macromedia then) Dreamweaver and then.. Notepad. My progression from a frame based layout to a more complex layout was quite quick, I must add. The process was simple – the designer created what he called as his "masterpiece" idea. As "people in arms" we HTML-ized the layout and then had to test it out on the "then famous" web browsers – Internet Explorer, Netscape Navigator and Opera. As the testing went on, we felt like we should have been martians or something. They should be far more advanced and didn't need 'em webpages! J Errors popped up one by one and we had to fix them all before the client saw it on his set of browsers. BG images were a no show on Netscape. DIVs and CSS were a mess.

1994 came along and we had the W3 Standards. Clients sent their specifications, now, with a line added – "Should follow W3 Standards". Now, that was sweet, huh? Between all the work, we now had to learn standards and implement them! The designers held up their red flags saying it was a chore to design according to standards and added the most used line – "Design is about idea and creativity. It doesn't follow any standards". So, what followed was a big battle. What they designed, we had to..yeah.. had to bring in the standards. I have nothing against the standards. Standardization is good. Its just that battles rage long and hard. Luckily for me, I wasn't hurt.. I escaped to what I call the "silver lining" of my life – Flash. Really, my interest in Flash wasn't to have an escape route. I got interested in the interactivity and moved in.

It is 2009 and the battle seems to be still raging on. Out of some 30 web designers I know, about 20 still believe in "creative freedom". Designing web 2.0 websites isn't their daily lollipop and making them understand the whole thing is difficult. The question is – Why should the "design" be different from what they do to make it compliant to standards? Isn't that really the job of the HTML guys? Well, I think both people have a role to play here. Visualization should be open to standards and the HTML guys should follow standards to make sure everything fits and validated. Designs should go far away from use of the "invalids" - Nested tables, Image maps and usability issues. Many designs I see around me still force the usage of these.

In many ways Flash breaks a lot of the rules. You start with a clean slate and then draw up your imagination. I had always wanted to build a circular webpage layout back in the 90s and I did that using Flash! You really don't have to bother about serious browser incompatibility issues and spend lots of time in testing across a lot of variables. Your idea is safe and standards go almost to hell.. until.. a person like me shows up and says – name those layers and write meaningful code (variable names, function names etc.). It is another doggy day and you still have to chase the tail!

Wednesday, April 01, 2009

The Day of the Fool!

Every calendar year, this day makes us all happy – being a part of pranks galore. It has become a trend these days to sing the B'day song for people picked randomly. I waited for Google to open their File > New > ... Google has been using the day to launch serious products! Seriously! ;-)

In 2000, it was "MentalPlex" (http://www.google.com/mentalplex/). I also recollect a fictitious drink (forgot its name though).The drink was supposed to increase a person's intelligence. In 2K7, it was the Google Paper. They would print out emails and send them via traditional post! One can never forget the Toilet ISP. It was the whackiest concept ever! Last year it was the funny way to view YouTube, where you have to turn your monitor upside down and tilt your head upside down and then move to Australia..wierd humor! I also remember Orkut had someother name given to it (yup! Forgot the name). I heard that the YouTube page was upside-down for a while, though it didn't check out for me. Also in the news was CADIE - Cognitive Autoheuristic Distributed-Intelligence Entity. Some of CADIE's new features include auto-replying to emails received in your Gmail account, add red-eye to your pix on Picasa and the funnier Brain Search for your mobile.

It was good that the economic slowdown didn't spoil people's sense of humor. Even the fear of the prowling Conficker worm didn't spoil things for the techie. The worm woke up in Asia according to reports on cnet news.

 

Thursday, March 05, 2009

Just flow?

It was sometime during the year 2005, I think, I attended this seminar on "Workflow Management and the Effective Process Management". The person who was making the presentation was a famous management guru with loads of experience. Back then, I thought that all this was just some mumbo-jumbo and fit enough just to be in a book. In the next few years, I was in-charge of managing teams and establishing workflows. Not really aware of it, I was actually following a lot of what the man had talked about. I had to improvise a bit, but there is always something that comes with the strings attached.

In my life, I have led teams that consist of designers, developers and test engineers. Many of whom have bigger degrees and many years of experience. We've always had a mix of technologies and skill sets – newbies, seniors, idle-bugs etc. At first, I tried to be the "No process man". I failed miserably! With experience came the art of getting it all right.

In my job (and most others), designer <-> developer workflow is a very important thing. It is becoming more and more important to have an easy and effective workflow with the era of richness moving really fast and becoming the order of the day. Project turn-around times are becoming lesser too. If your workflow is not efficient, deliverables are delayed and lot of problems are caused. A proper flow can be established when all sets of people involved first understand their portions of the work to be done. In my experience, I have had various hurdles.

  1. When the project is more "design based" with a minimum team of artists/designers, it becomes more difficult to establish a process and method. Designers want more time to ideate, visualize, layout and finalize. They don't want to have time constraints on any of these, especially, if their manager is a development guy! Mostly they prefer individual contribution and don't like working that much in a team..rightfully so, coz many have told me that ideas differ and final execution doesn't turn out as visualized if the entire designer's workflow is pushed through to other designers also.
  2. If it s a totally developer oriented job, there occurs a lot of arguments in code models especially. Developers easily fit into workflows established.
  3. The "mix" is getting into some soup! There is always the – "that design and this way" argument. There is also the more famous – "At the end we become the slave to the grind." It is often true that as the project gets well along the way, designers finish early and developers take a lot of stress and burden. This builds a bit of envy, which also affects smooth functioning.

While designing stunning and rich exteriors is the designers' job, making things rock in the interiors is the developers'. It is not just process and/or mentality that governs a good workflow, it is also the tools that have an equal say in matters. Collaboration, interoperability, familiar user-friendly GUI, a bit of backward compatibility..all these are important features. Both my favourite companies (Adobe and MS) have come a long way in this regard, making software more along these lines of efficiency. Would there be a day when the creative editor approves a design and does a File > Save as > Banner from a print document? The CS4 suite is really close to it, with interoperable formats and familiar environments, it allows us to remove some of the old barriers and be more efficient and quick. Whether it is transitioning from a prototype to a widget or creating a rich application from a layout created, the CS4 suite has all that we need and can use. PhotoShop, Flash, Fireworks, Flex..and now Catalyst all work together!

Using Adobe Flash Catalyst, designers can create the GUI (or the "user experience" as we now call it!). They can import PSD, AI or PNGs and create the GUIs with basic interactivity (transitions, style changes etc). The file is saved as FXG. The FXG opened by the developer in Flex Builder. He does a "code merge" and adds functionality. Changes in design are again "code merged".

Traditionally, most developers are used to creating a new document and adding the design elements manually into a new Flash document or a new MXML file. We often need something in a particular way, other than, what the designer has designed. Eventhough we don't "redesign" anything ourselves and leave that to the designer, it causes a clash sometimes and often the "I am a designer, you just code" T-shirt is worn! A good process must have all this laid in and made a pact. Design is made according to a plan, with some design standards and best practices. It should make people work easier with each other. The same goes for developers too. Standards, patterns and best practices is the name of the game.

"Build once, deploy on whatever" is almost a reality. There used to be a clear classification when I started as a programmer – "Desktop Application Developer" and "Web Developer". The Flash Platform and platforms like dotnet really bridge a lot of the gaps. It is going to be a really awesome future! Bring it on!

Saturday, February 21, 2009

Join RIASpace!

Some of us have set up an Adobe User Group called "RIASpace". The intention of setting up this User Group is to bring the "Rich people" together! Nah, not "rich" money-wise, but, "rich" as in "Rich Internet Application" and "Rich Internet Advertising". Share views, knowledge and whatever you would like in this Space. You could be a designer, developer or webpage specialists or even one of those "in-betweens" like me. Join RIASpace now!

URL: http://groups.adobe.com/groups/3e182b1a99/summary

Most of us in typical traditional advertising claim that we are not as "big" a developer as the regular developer. With the evolving advertising industry and stress on user involvement in this industry, I am sure things will change.. they are already! This is also the reason, we would be stressing a bit more on "Rich Advertising" and "effective user experience". If you have anything to share in this regard, please feel free to share.

As far as regular application development goes, we'd be talking about that too. So, anything in this regard is welcome too.

Currently, the User Group consists of designers, developers, project managers and HTML specialists. Some familiar with programming and others not so much into it. Hence, please keep your presentations and words a little less "jargonistic".


 


 


 

Wednesday, February 11, 2009

Don’t fear! The APIMan is here!

Naah! Don't worry! You won't see one of those super-hero people here. They are just a figment of imagination. So, the underwears will stay inside for the moment. Getting to the topic, I am really excited about this widget I am making using Flex 3 and AIR. The keyword is "API" here and I am using about 3 or 4 of them...exciting stuff. The project is codenamed as "Flare" and should be live in a couple of weeks, I guess.

I have been fiddling around with APIs only for about a year now. The first API I touched was the Flickr API and I really couldn't get with things the first time. As things took shape, cracking those APIs and extracting application functionality with them became easier. GData API was the next in queue, particularly the Maps API for a geo-coding enabled project. The project didn't take off due to some funding issues and it didn't see the daylight. That project, though, was the one that really got me into AIR. I still reuse code libraries I had developed for that project in various others. It is not the perfect example, but it works that spark in your head.

I have learnt quite a few things about building AIR applications. Here's some:

  1. Make your application "configurable" or "customizable" by the user. This can be from a simple Theme setting to a more complex functionality-based setting.
  2. It is useful to maintain the configuration file as an XML file. It is not only easier for us, as developers, but, its kinda interesting for the user too.
  3. Use the built-in features and APIs rather than trying something totally different and hitting that road block. Like, for example, use SQLLite where needed rather than trying t use SQL Server.
  4. Check your build for bugs and performance issues. Use the "Profiler" built into Flex builder to check for performance issues.
  5. If you are minimizing to the system tray, use a right-click context menu to bring back the application. Commands like "Open" and "Exit" bring out a lot of user-friendliness.
  6. If you are creating a transparent app, make sure it is draggable and has a "mimimize" and "close" button. Once again, it is user-friendly!
  7. Don't just package the app and release it for download as one would do for a simple EXE. Create an install badge.
  8. Make sure you use proper code to look for locally stored files in Application Paths and not hard code it.
  9. You can add auto-update features to make sure your app is up-to-date.

Well, these are just some of them. There are more and a lot of it take their place with practice.

If you haven't tried AIR out, its time to Feel the AIR!

Saturday, January 31, 2009

2 to 3!

I was reading this blog entry on AS 2 to AS 3 migration @ WarmForestFlash blog a little earlier today and the thought has been floating in my mind for a long time. I migrated to AS 3.0 when AS 3.0 came into the world. I fought my battles and won the wars and I think it is well worth it. I've aired my opinions about the migration on various occasions too. A few of my friends still stick to AS 2.0, not because of the small learning curve, but, they are held by strict project coding platform rules setup in their companies. As I have experienced too, most of these "Coding platforms" have been developed in circa "those triple digit years". Those who have some authority on questioning higher level people have found the common answer – "The code has been developed over a lot of experience and has been tested to zero-error the current stage. We don't have the time to work on a new platform for this. Just do your work as is." I have worked on projects that had really primitive levels of coding and technology. The truth is, we can't really blame anyone for stepping backward or remaining there.

Recently, I was developing this simple widget for a client. To me, the obvious choice was using Flex 3 and AIR. After some discussions, had to realign my thoughts and use Flash and a projector application. I have used mProjector, Screenweaver and Zinc before, but, the version I had access to was very old. I had to look back a bit and hit the "Use AS 2.0" button. I began the coding and then couldn't really make much progress. My mind was shifting me to AS 3.0 – EventListeners, XML DOM models etc. In short, Resistance was futile. One of my buds had Zinc 3.0 on his machine and I smiled and delivered. "Once you have enjoyed the power of being a king, you can't really give up".

I've always loved technology and coding. I sleep well when I have written atleast 10 lines of code, especially AS (Call me NUTS! ). When I migrated from AS 1.0 to AS 2.0, it was tough. The concept of OOP was a bit hard for me, since, I didn't come from a computing background. The learning curve was really steep! AS 2.0 to AS 3.0 is a lot easier. I have told this a lot of times during my discussions – its only when you do, you learn. When you learn, you enjoy it. AS 3.0 gave me the pleasure I sought. I hit some rough patches and still hit many, but I try and overcome them. You don't really need to migrate official work to the newer. Learn as a personal thing. To those who want to migrate, here are a few tips:

  1. Get to know the new Event model. Keep the onReleases(), onPress() etc in the locker.
  2. Remove the "_" from object properties. _apha will be alpha for the record.
  3. UI components are more thrilling. Get to know them
  4. XML is also easier to parse and consume.
  5. Get used to the new Packages. Know what lies in which package.
  6. Check this page out: http://livedocs.adobe.com/flex/3/langref/migration.html

Happy learning!

Monday, January 05, 2009

Small Concept, Big Movie! Yeah, it’s the movie review time!

Going a little off topic, I am going to review a movie that I saw. It was a good break from all the learning.

The Movie? Ghajini. If you haven't seen the movie, I am putting in a spoiler..hehehe. The movie starts off with a medical lecture. Jiah Khan gets introduced into the movie as a simple eager medical student. Well, later on, the "simple" will change to "pest". Jiah Khan wants to work on the "Aamir Khan Project" as she chances upon the criminal case file in a common medical library. Of course, now, the star is introduced in a WHAM! BAM manner. It was a great idea bringing in the shadow first and then the actor. The brain surgery seemed to have healed well on Aamir Khan's head! So, Aamir Khan has Short-term memory loss. He can remember things for 15 mins. So he has this room full of really big collection of clues which would lead him to his girlfriend's killer. All over the room, he has left these little post-its which tell him what he needs to do and stuff. It didn't stop with the post-its though, he needed to be given a chance to show the 1...2....3...4...5........8 packs, so, he had these things – phone numbers, messages written on his body. In big bold, he had "Kalpana was killed" around his collar bone. Kalpana? Anyone? Do I know her? Yeah I do..well..selective short memory loss?

Moving on in the story and cutting out on some action, there is this really short shirted muscular cop who traces through clues and finally comes to Aamir Khan's house to confront him, even if, he was to run with the city bus to catch up and get in. If the hero was caught, the movie wouldn't have taken 3 hrs almost to finish, so to give people their money's worth, the cop bashes up the hero and..and..looks around to find a diary. Am I getting a flashback here? Yup! We are taken backwards in time to get to know the man's life. So Aamir Khan is a really high-flying business man – Sanjay Singhania...only..no one really knows him. He can easily pass of as a boy next door in this armanis and rolex..and.. Superman had to wear you know what outside to keep his identity a secret! The whole affair is revealed. Asin (the heroin) is a small time actress and let us leave it at that.

The cop comes to the last page – 31st Dec 2005 with the echoing question – "Do u love me?" well, thats is the question Aamir asks Asin in the flashback and Asin is to give him the reply the next day. Aamir wakes up from all the bashing and bashes up the cop! Strike one! Do we have a surprise waiting? Yeah we do! Remember the medical student? She too comes to Aamir Khan's place. Now comes the strangest thing in the movie. The cop tells her that Aamir Khan is a killer and starts to run away leaving the girl and Aamir behind. Luckily, the cop is the bigger bait and Aamir decided to chase him. Coward cop is run over by city bus.

Aamir finds a programme invitation among some goons he beats up. It is an invitation to a college programme that is "chief guested" by..by.. TADADAAAAA.. the Villian..the one and only..Ghajiniiiiiiiii. The Polaroid cam comes to use again. Aamir takes a clean shot of the man. Oh yeah! The Polaroid cam. This is a tool he uses to take the pics of things (and people) he wants to remember. Jiah is once again brought in to throw some gas into the inferno. She vists the villain to tell him of Aamir Khan's intentions.

Are you still wondering what happened on the 1st January 2006? Did Asin say "yes"? Who is going to read the 2006 diary? Yeah, its Jiah once again. She had taken the diaries home to read as a bedtime story, putting it in a cupboard to read later. Now, that she remembered that, it was time to read. We get back into the flashback watching things that happened wayback...rhymes! Asin says "Yes"..no surprises there!

Cutting out a lot of things in between, we go to the part where Jiah is investigating what exactly happened to Asin and Aamir. The diary doesn't talk about that! So, on her trip to Goa for a shoot, Asin rescues a group of girls taken by the goons of Mr. Ghajini to be sold. Heroine's life! Hmm. There is this interesting character in a lady cop who calls Asin to come to the hospital where the kids are recovering. She says that 2 kids are missing and Asin has to come immediately to identify them and that there is a big person's hand in the crime. This raises the question – Cops are there to protect people and investigate things right? I scratch my head on that!

Goons angered they take revenge and Asin is killed. Aamir is also bashed on the head with an iron thingy and thats how he gets to this state. This leaves us with some questions:

  1. Big business man bashed up and messed up in the head. Strangely the police case isn't famous or heard of. Are our media so bad?
  2. Do sick people live alone? I mean you forget things in 15mins and you have no one to take care of you?
  3. "Revenge" is the most remembered word?

The storyline was kinda weak and doesn't really stand a chance to some logic. But, then again, movies aren't mathematic equations. It is the entertainment value that counts. Music is really good – typical AR Rahman stuff. Apart from Behka, Kaise tujhe and Ghuzarish, the rest of the songs aren't really catchy. Aamir Khan does the usual Khan thing. Good actor delivering his best! Asin was natural, but, the rest of them were kinda mediocre and didn't seem to support the main story.

This goes on to say - Buy the DVD and see it.

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