Wednesday, December 23, 2009

Zinc 3.0 versus AIR

Adobe AIR certainly changed the way we think about rich desktop applications. It was a real sigh of relief for me when the details of AIR came out during the initial days. We no longer had to battle with the Flash security sandbox while building desktop/kiosk applications. A lot of our dreams could turn to reality. It took a few lines of code and the power of Flex to build a simple Picasa desktop widget to display your Picasa album pics. The same code with a few changes can be ported to the web as well. Now, that's kewl!

As the human needs grow, we want more power in our applications, to not just build apps that rely on the power of the Flex SDK, but, to push the limits a bit further and talk more to the system, use DLLs built using .NET or other languages, configure the application easily setting numerous options, create screensavers, use the text-to-speech engine to make things more interactive, launch other applications and the biggest of them all – do no framework installation. A lot of clients just ask for a simple EXE which doesn't rely on other installations to run. Even though AIR 2.0 address a couple of necessities, it doesn't offer them all.

I am not against AIR and in favour of Zinc or the vice versa. I like them both. They have their own pros and cons and it is up to the requirement and the developer to decide which is best suited. I like Adobe AIR because – its FREE, you can create AIR applications from Flash Builder, Flash IDE or HTML, the certification makes it a secure way to distribute applications, there are so many things you can readily do because of the community reach that Adobe AIR has. Multidmedia Zinc 3.0 is expensive and so is new offering Inferno (I love the name!). Using Zinc, the amount of extensions you could use is really a big point to note. If AIR gives us some of these abilities, it would certainly be awesome!

At the end of the day, the technology we choose is established on "client requirements". The reason I have seen a lot of clients deviate from the use of AIR for deployment is because AIR needs the AIR framework installed. It is not too big a deal for us, but, in closed environments like at my workplace, where, computer users are "Power users" and would not have installation rights for software, AIR draws a big question mark. Most applications I have developed over the years are really simple little applications – Widgets, kiosk apps etc which have the big basic requirement – "Every user should be able to install the app on their desktop". This makes me go back to Zinc every time, even though, I, as a developer, would naturally prefer AIR.

Would Adobe have to worry about Zinc? I am sure it doesn't have to. With the amount of reach and community interest it has generated over the years, AIR is here to stay big time! Most certainly, AIR has a long way to go before everybody accepts it. Adobe took a big step forward with the new features introduced in AIR 2.0. Zinc fights a very good game. I wish the technology was cheaper though. J

Sunday, December 06, 2009

Branding 2.0 – The final part

Yup, "Tomorrow" took a few days to come. Anyway, here goes the final part.

When it comes to online/digital advertising, banners play quite a part! We see them almost everywhere – in all forms, shapes and sizes. The amount of money and research that goes into this simple form of creative is actually very large. Whether people actually click it or just turn a blind spot, it has quite a success rate at times. Good online real estate is expensive. A lot of companies (agencies) do some research on the site that would display their banner before actually mocking up the creative. The research would be on the type content, colour, speech tone etc that the site carries, other ads or banners displayed, user interactions they could make use of and a whole lot of other things. All this effort for a banner that may not be seen? Well, I am not a big fan of banner ads, but, I must say that it is really an effective form of advertising. If you have an interesting concept and it is interactive..well.. Moreover, the various sizes are displayed in various areas of various sites or various pages of the same site or various sites – a lot of "various" makes one big statement – "Just see me already!" or "Ok, I am a banner promoting a product. Keep me in mind. You'll see more of me around..don't forget to say Hi". In all its sense, it builds a brand! For example, on my tech sites I go to everyday, Dell banner ads keep showing up in various sizes and colours. Even though I have a blind spot to normal animated banners, these banners somehow don't seem to stay out of my sight. I don't really know what they say. All I know is, they talk Dell!

Landing pages, EDMs have their say in the digital space too. Our email boxes are lie cluttered with many EDMs every day. I admit it that I haven't seen even 10% of the lots I receive, but, people who want to see will see and click. That is the way it works. It is kind of a trial and error if you think about it. What I am trying to say here is – these forms of assets maybe traditional, but, they still live and will live on. They will take new forms and formats, but they will live on!

There is also a Social media advertising frenzy that has picked up pace during the past few years and especially during the hard times of the recession. Brands resorted to people to carry their brand and product forward. Twitter, MySpace and Facebook became the major medium. Companies have their Facebook pages and invite people to join in. People are successfully building networks, promoting brands and products. In fact, even Human resource and staffing agencies have people on LinkedIn, doing searches, going through profiles and contacting candidates. This goes to show that if you know who your target audience are and what medium they use to network, you have got yourself a possibly profitable medium to reach out. Recently an acquaintance asked me if they allow advertising on Farmville. Neither of us had played FarmVille, but, the game is the talk of the town, and, if you are a maker of farming/farm products, what better way to advertise!

The success of a brand online depends on the fame among its users/viewers, interactivity, research, innovation, network and good catchy copy. The real question is – Are you building a brand or selling a product? Let us remember that the success of the product depends on its strong brand power! Banner ads, much like print or TV don't immediately prompt users to buy products. People buy stuff when they know for certain that it is well worth it and they have done enough research about it. Someone once asked me – "Should we have a "Buy Now" button on the banner or a "More Details" button on it? It isn't a very easy question to answer, even after considering all the messaging and creative line. Would you visit a store and buy a TV because a banner says they are the No.1 manufacturers or the TV has n list of features?

Branding 2.0 is about:

  • Doing your own research
  • Creating a whole network buzz
  • Choosing the right medium
  • Understanding the user and his behaviour
  • Right interaction
  • Building true brand without creating a hype

Build your brand! Make the millions!


 


 

 

Monday, November 23, 2009

Branding 2.0

I work in an advertising agency and often wonder if what life revolved around is really something of mass and matter. We build brands, giving a unique identity to products and companies. It takes a lot of effort in terms of thought, money, research, ideation, visualization, creation and development to build a strong brand.

Our fathers laid a strong foundation in print - carefully choosing visuals, colours, type and text to convince and put faith in people about the brand. I remember, as kids we used to swear by the big names – Levi's, Nike etc and became tribes which accumulated specific brands and not even look at other alternatives, which would have worked out cheaper or better. The foundation that the "fathers of advertising" laid down, were so strong, that, people became more "brand ambassadors". Each one of us held brand(s) to our heart and made sure it stuck that way. Did the brand become "personal"? It is a strange outcome if you think about it actually. On one hand, companies wanted to establish their identity and the identity of their product/service. They communicated with people telling them that the company A made product A and that product A was awesome! The people believed in product A so much, that, it won its own identity and got away from the company a bit. People knew Product A and talked about product A. Web 2.0 didn't change this even a bit, in fact, it became a medium. Anyone can get online on Twitter or Facebook and talk about a brand/product with opinions. People can contribute to these opinions and the actual company can do nothing about it. Marketing and PR agencies are kind of helpless in this respect and can do very little to actually change people's thoughts and feelings. A hundred million banner ads displayed every 15 seconds hardly has an impact. Tribe 2.0 believe in a more strong and interactive mechanism to build and affirm faith. That's where interactive agencies took their form. A lot of interactive agencies build brands using these medium. If you have more controls on things, they fail. Freedom of interaction and speech gives you that much more depth.

During the 80s and 90s, brands were product driven and customer driven. Now, it is all about the "Brand experience". The "total branding" seems to be just lying on the internet and print has become just a reinforcer. People search, people read, people blog, people interact, people experience..all on the internet. Before I went in to buy my old i-mate, I rushed to an internet cafe to actually read multiple reviews about it rather than read a 20 page catalogue that came with the product. I also went to the imate.com website to go through the various offers and support options etc, which, would finally help me decide. People review when they experience and people believe what people say their interactions.

[more in Part 2.0 tomoro]

Saturday, October 31, 2009

Why AIR is so kewl

Developers like me, who wanted their applications to look cool, must've surely passed through a phase when we used a Flash UI for a VB application and thought – "Wish Flash could do much more than just being a snazzy UI". It wasn't simple to make the UI look good. Every time you needed an extra bit of functionality, you needed to edit and re-export the SWF. It was also a bit of a mess when it came to the workflow. The VB developer and the UI developer had to keep making changes and pass on the list each time a change request came in. We used to call such apps – "FSCommand Splash". As the Flash versions released, we needed that bit more to help us make better applications. Component Binding was a blessing and so were the Data connectivity components. They certainly made tasks easier. Still, there was something we all wanted and tried to accomplish somehow – FILE IO. Of course, there were third-party applications such as MDM Zinc that gave us quite a bit of power, but, that was a separate investment and a different story altogether.

When AIR was launched, I guess it was a big turning point in most of our lives. We could do much more than just building applications with skins. We had something more powerful than that! Cross-platform and Browser-free meant we could build those "Rich Internet Applications" we always wanted to, whether you using a Flash, Flex or Dreamweaver user. AIR helped us use what we already knew and extend capabilities of our applications by harnessing the power of the internet and combining it with the power of the desktop. With built-in File API, well, it really pushed a lot of hurdles away. You also got a built-in database in SQLLite. We didn't need good ol' VB to do the job anymore. This was good in the business sense too. Not only could they give the client an application that looked great, but, they could also leverage their existing resources to build these applications, thereby, cutting costs. They could also cut costs by employing only necessary resources, eliminating the necessity to have other platform developers. Meaning to say, you team now only had a UI Designer > Flash/Flex/Web Developer > Tester with other platform developers as an optional. Previously this was – UI Designer > Flash Developer > Other platform Developer > Tester.

I think with the launch of AIR 2.0, Adobe would create a much bigger landmark. Reading about the new features made me and a lot of other people go "Wow". With new features such as – File monitoring, Volume monitoring, Asset caching, Native application support, online synching etc, AIR would certainly be a technology that needs no convincing.

For a more detailed list of AIR 2.0 features:

http://www.mikechambers.com/blog/files/presentations/fotb2009/advanced_desktop_development.pdf

It sometimes takes a lot to convince the client when he questions the choice of the development platform. It takes more convincing when you mention the fact that an extra layer needs to be installed on the user's machine to run the application. They don't really care about the development friendliness or the fact that we are using one or two technologies instead of using 4 or 5. A lot of times, we used to say that we are using Flex and keep the AIR deployment a secret. With the Installer doing the silent AIR runtime installation, nobody has to know. J

Saturday, October 24, 2009

“Best practices” or just do your thing?

The daily life of an IT professional is filled with "Best practices" and "conventions". Most IT organizations, these days, make sure that people follow what has been laid down strictly and have effective mechanisms to penalize bad and unorganized work. It is only when things are standardized that other people working on the project will understand what needs to be done. Some developers believe that "Free thinking" is lost when you follow things that strictly and coding becomes a "best practice" guide. Well, I used to believe that too in the beginning of my programming life, but, as the days went by, I strongly stood for these norms and conventions and even went far enough to lay down a system in my previous workplace.

We have "Best practices" for everything almost – design, development, UI building etc. I believe that "best practice" is a process by itself. It starts from design/layout and moves through development, testing and release. On many occasions, I have seen apps fail due to designs that don't follow these practices. To start with, Photoshop layers are not named or Flash libraries are cluttered with items that haven't been properly named. By the time the application releases, it would have changed from one thing to a totally different thing, far from what was initially visualized. I remember that we once had a hard time trying to change the UI (for adding a feature) of an application just before we hit beta. The structure of the design was such that it took us more time to actually figure out some of the layers and how things actually flowed. It is a simple best practice! But, most people blame "time" for doing a sloppy job, even if the final output is classy!

Here are some best practices that designers must follow:

  1. Give proper names to Layers. If a layer contains a button, call it "Button" and not "Joe".
  2. Make sure that the final version (that goes to development) has all unused elements deleted and items optimized.
  3. Make sure that the design works in specified resolutions. Sometimes designers use a higher screen resolution while designing, whereas, the target screen resolution could be 1024x768. Here, the elements of the UI would look really large!
  4. Use folders to organize page content or specific related content. This applies to Library/layers etc. For example, all elements used in the Homepage of a site could be in a folder called "Homepage".
  5. Use Web palette colours where ever possible to make sure that colours are easily coded.
  6. Name files properly and organize it into folders.
  7. Use colours to darken/lighten text instead of using Layer alpha property (esp. in Photoshop).
  8. "Usability" and "flexibility" of the interface need to be kept in mind while designing layouts.
  9. Use system Fonts for dynamic text fields esp. For HTML pages.

..and the list goes on.

Best practices for developers:

  1. Every programming language has coding conventions that should be followed.
  2. Name your variables, functions, classes etc with sense and in context.
  3. Use functions and make code more reusable.
  4. Keep code in one place as far as possible.
  5. Comment code properly with proper descriptions.
  6. Avoid using "reserved" words.
  7. Make sure you test the performance of your code and optimize it before you release stages.
  8. Avoid those last minute "IF" fixes. These are mostly done before beta.
  9. Create a proper structure – for your code, for the application as a whole.
  10. Make sure your code can be easily extended, so that, if some additional features are requested, you can add functionality easily.

..this list goes on too!

Best practices for Managers/Leads:

  1. Make sure your team exactly understands what they have to do. Hold meetings/discussions that would help this purpose.
  2. Establish a proper workflow to enable not only easy management, but, a smooth functioning as well.
  3. Make sure the people get enough time for everything. The client says something has to be done in x amount of time, make sure that your team can handle it. If you are able to convince the client for an extension, it is most ideal.
  4. Establish a proper process to help monitor progress and workflow.
  5. Layout a proper project plan, which needs to be communicated to the team.
  6. Make sure all team members follow "best practices" and standards laid out.
  7. Have a system in place which enables code/design checks to help make sure things are going as per plan.
  8. Have a Management dashboard to tell you exactly how things are and communicate the good/bad with the team.
  9. Make sure that team members have a proper work-life balance.
  10. Showing your stress is a strict NO-NO.
  11. Never expose you team members to clients or involve them in remarks during discussions with clients. This will be your downfall.

..this list could go on too!

There is not real definitive guide to all these things. Most come by practice and with experience.

Sunday, September 20, 2009

30 years younger!

I should have typed this entry up a few days (today-10 Sept. Days ago) ago, but, my mind was full of other things and felt really tired and worn out after some travelling and a good deal of work.

Looking back at my life and also looking at the way things are at the moment, I should say it has been good going so far! I haven't achieved the ultimate dream as yet, but, getting there slowly and surely. Of course, the dream kept changing throughout my life – from being a luxury bus driver to an automobile designer to a chartered accountant and what not! Along the way, I did achieve some small victories, but, the ultimate dream - remains!

A few days ago, I watched some kids play cricket on the streets. I wished I was a kid once again, but then, I thought of Math and Algebra..YAAA! that shook me back to reality..I have a well-balanced life, a supportive family, a lovely sweet wife, a job in a good company, a brat of a pooch, an instalment (Fiat) of my dream car and what not. There always remains that urge to do better and do things differently. It can't be controlled. The good things of it, I have in my agenda the rest goes into the grave. At 30, these things come and go. It is too early to start those funny habits of middle-age crisis. I hope I am always as normal (yup!) as I am.

Sometimes I wonder how different things would have been, if, I had really continued with my business studies and commerce. I guess I would have become the stock broker I wanted to be at that time. Successful at first, but, in pain during these hard times. I could have become a chartered accountant and done some serious pen-pushing, sitting in a cabin or one of those exclusive cubicles. I would have been damn serious about every penny and never got all those things I have now. Well, if I went ahead with my early dreams of becoming a bus driver or a vet, things would have been different too. The bottom-line always remains – Life, health and money. I started somewhere and ended up somewhere else. It has been quite an uphill climb to get where I am. To come in from a business background to computers and software is very tough. I guess I have achieved what many engineers haven't. It is a proud moment and I am really happy for it. Most people in the family and friendship circles think I've had it easy. Not so! I didn't really show it out.

As I climbed through the echelons, I discovered new passions and interests, but the focus has never been lost. I never wanted to be a guy in a cabin, travelling in a fancy car and getting a massive pay check. I've always wanted to remain with technology and people and not really dive to the depth of management.

As we grow up, we have those personal targets – get settled, get married, have kids..live it out! I wasn't really interested in getting married for reasons. All that changed when I met this girl (now my wife!). You could say that I was bowled over by her smile and her simplicity. Something in me said – "Dude, it is time to get married and live happily ever after!" I listened to that voice. It is now a year and Man! It's been awesome! We've both grown more responsible and stuff. Then, Mr. Snoops came in and things became more awesome. He has a big fan club and can become the president of the pooch club! And then came the Red Beast - the real Flash of Scarlet. Things now rock! We've had a few tough times, but, that a part of getting into the groove.

Friday, August 07, 2009

There’s a Catalyst in our midst

Adobe Flash Catalyst has been a part of the news among the Adobe community for some time now. Community experts and evangelists seem to fit Catalyst into a role very easily. They always seem to echo the common thought, which is something like:

"We worked with people in the industry to understand workflow and have brought in a product that would help the designer<->developer workflow much better. At the end of it, the designer is happy that his design is carried on exactly as he had visualized it. The developer is happy that he can concentrate on development, than having to work some extra hours trying to get the design right..."

Speaking to a few people (ranging from designers, developers and managers) to collect their thoughts on including this new tool into their workflow, I felt that workflow problems would still exist to a large extent. Some common points of view are as follows:

  1. New tool to learn: As easy as Catalyst maybe, it is still something that would need us to learn and train. It may take a day or a year, it is still time consuming.
  2. Impact on working cost: We have to buy catalyst. I don't think the company will.
  3. Already good enough workflow: In most companies, the designer gets his way even if he and the developer have to work longer hours, fight bigger battles. If the client wants it and if it HAS to be done according to the way things should be...well.. there is not much of a problem at the end of it.
  4. Designer or developer or someone else? Who will need to know Catalyst? It is easy for the designer, but he has to create so many designs per day. The developer has his hands full with the actual coding and implementation. Should there be a new position created called – "UI Developer/Catalyst developer". What would he need to be good at? Will my company allow it?
  5. Catalyst is cool. If my designs can become that much interactive even before the developer gets his hands on it, it is lovely! It is easy and quick.

Well, people say different things all the time. I think Catalyst will become an essential part of the workflow. From my experience as a designer, developer and a project manager, it brings in that missing connect that all of us feel. It saves a lot of time for the developer, who, not only can concentrate on his development work, he can also get a lot of the UI based (simpler) coding (like CSS) done automatically. Designers can reproduce his visualization. For the Project manager, life gets peaceful! Iteration loops can stay with the designer and only get to the next step when the design gets approved.

For the future of Catalyst, I think a project management component integration would be cool. You could have a Project -> UI Comps assigned to designers -> Versions -> Final approved version. The developer can do a check out of the final comp and integrate it into his project in Flash Builder or the Flash IDE. Time is saved as a result and people are happy!

Monday, July 20, 2009

Portable Apps..wow!

So, your company's IT policies do not permit you to install software on your machine? No problem! Portable applications will save your day. There are a few applications you'd still want to have installed, but, they aren't available as "portable" yet. For example, Visual Studio.NET and Adobe Flex aren't. It is simple really, these are applications that can run from your pen drive and don't need any installation. Dump it into a folder and run them from there.

This site has loads of it: http://portableapps.com/

Currently, I am doing a project that requires PHP and MySQL. I couldn't get them installed on my machine because of the aforementioned reasons. I had to get it done, even if, it was really official work. So, I turned to Google and it led me to the most awesome solution – MoWes. Yup, a fully loaded webserver on stick! You have Apache, PHP 5, MySQL and you can keep adding! I almost fainted with amazement. Then, I found it a bit difficult to manage the database I had created. My next Search mission commenced and I found Portable HeidiSQL (http://www.heidisql.com/)..really powerful!

Portable apps aren't very different from the everyday apps. They sometimes have memory leaks, of course, we do understand it is due to the limitations. So, what can you carry on stick? OS? Office suites? Well?

Here's a list of useful stuff you could have:

  1. Open Office Portable: http://www.portableapps.com
  2. Webserver portable (Mowes): http://www.chsoftware.net/en/useware/mowes/mowes.htm
  3. Portable Windows Live Messenger: http://www.techbeta.org/instant-messaging/portable-windows-live-messenger/
  4. Portable VLC Player: http://www.portableapps.com
  5. 7-zip portable
  6. Winamp lite
  7. GIMP Portable
  8. Firefox portable
  9. Chrome portable
  10. FoxIt Reader
  11. Notepad++ portable

Kewl huh?

Sunday, July 19, 2009

Creating multi-language “experiences”

Working for a company that creates content for a worldwide audience, sometimes, makes it difficult to explain how a "dynamic publish once" application works. As Flashers, we use a lot of XML to store our content and use dynamic textfields to display them. I haven't really come across many developers using the built-in Strings panel. The Strings panel is quite useful by helping you create and manage multi-lingual content. You can create the content in one language and then use the Strings panel to add more languages. When you publish the application, a folder will be created containing one XML file per language. Isn't that great?

Manually setting up a multi-lingual project isn't very complicated. The general approach to setting up such a project is as follows:

  1. Create your application root folder – For ex: MyLanguageApp
  2. Create a folder called "data" or "content". This folder will contain your XML files.
  3. Of course, you need the com/company/app path for your ActionScript package.
  4. If the user is in-charge of selecting the language, it is not a complicated affair. Else, in your main FLA, you need to have a logic that helps you make that choice. I use a server-side script that returns the system language settings.
  5. Embed fonts into your application for your dynamic textfields.

The first 4 points are easy. The final one can get a bit tricky, especially when we are talking about "brand fonts and styles". Advertising agencies select fonts to build a brand's identity, after taking into consideration a lot of brand character, strategy and not to forget...Client requirement. All brand fonts needn't support character sets belonging to some or most languages. To mimic characters for static content is easy, but, for content coming from an XML data source is tough! If the character is not supported, the user will just see "boxes" on screen. This is especially true for Asian language sets and some EMEA languages. Creating a campaign font from the scratch is time consuming, but, well worth it if your brand font doesn't support the characters!

Some tips to create multi-lingual application:

  • Organize the data into folders with file names reflecting languages. For example, use en-US for US English.
  • Try to select the language for the user by sniffing his IP Address. If the selection needs to be manual (by the user), make sure you have a page at the beginning to allow the user to do so.
  • Make sure you embed all fonts and characters.
  • Most importantly, use a formula to calculate the textfield's height and width depending on the content loaded.
  • Also check to see font size for your content. It is ideal to set it using ActionScript.
  • Make sure your application is fully loaded before the content is shown.

From my experience, Arial and certain fonts belonging to the Helvetica family are good fonts to have embedded for displaying multi-lingual content. I am currently experimenting with Segoe.

Leave me comments if you have any specific words of advice or experiences. It should form a good source for people involved in creating multi-lingual content.

 

Tuesday, July 14, 2009

Rich Data Visualization

When we talk numbers, people just watch us with a "Aha!" or the "Aww!" face, depending on the situation. Even though, number crunching and accounting was my breakfast, during the college days, I never really considered it as a profession. There were times during my internship that I felt it hard to make a person understand that he is losing money to income tax and other taxes. Microsoft Excel came to the rescue soon and we could show stuff using charts and formulae that could calculate effects of the investments we make etc.

These days, we pickup real time data from all across the world, display it, perform calculations, distribute them to users living around the world over a wide variety of devices. These applications are not only graphically rich, they are also interactive. Data is displayed as innovatively as possible to make users understand, capture and react. Users can also simulate effects by just moving needles, turning a couple of knobs and type in a few values maybe to display the effective result. Sometimes, you really wonder if those "little men" inside the application exist!

Some really cool apps: http://www.smashingmagazine.com/2007/08/02/data-visualization-modern-approaches/

Being a Flash Platform Developer, my world lies with Flash and Flex. Flex has rich features that can help your data visualization app look cool and powerful. Dashboard apps take a few minutes to create and with Flex 4 and Flash Builder it takes much lesser time. The amount of code you type in is minimal, thanks to the new data connection wizards.

Here's an article on it: http://www.insideria.com/2009/06/flex-4-data-wizards-make-life.html

From Graphical User Interface to Rich User Experience, things have come a long way. As a beginner, I used to hate those old formy looks of VB 5 & 6, and always tried some "skinning". The programming community I was interacting with back then used to mock my actions. Now, 3 of them are Flex developers and they swear by rich user experience! Who's the laughing now, boys? In fact, visualization components (such as the dial component and some charting stuff) I had created for various projects in the past have almost become obsolete. Papervision based visualization has found its way as cat amongst the pigeons.

 

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.