Friday, March 22, 2013

Can you identify the plane that just flew by?

Apple's Siri has surprised everyone with its abilities to understand human voice and take action on various commands. It has brought human interaction to the digital world closer than ever before. But what if I tell you that my application Stri (Sixth Sense Search, pronounced as s-T-ree) can understand and answer humans like humans?
Lets try an example in google.com. Search for "Can you identify the plane that just flew by?". Here is the result.

Ooops. No result. Google couldnt tell you that it didnt know the answer. What it could do is to search for pages that has the maximum hits to the keywords you wrote! Are you satisfied?
Lets see how Stri handles the same request. Here is the result. 



So what are we doing here?
We, in Stri, have revolutionized the way digital data is interpreted, stored and retrieved. When a user searches for content, Stri analyses the content and looks for real life data that matches the query. The most difficult aspect is to understand the different objects in the query, use different real-time parameters such as location and time to build the appropriate question. For this specific example, we have identified the search query as "Can you identify the plane that flew by at 12.30PM in Sanjaynagar Bangalore?". The next is to identify on what is the search query related. Here the object is "Plane". So we have 3 critical information with us: Plane, 12.30PM and Sanjaynagar. Finally, the action is to be done is "Identify". Multiple keywords would still mean the same, such as, list, find, identify, search etc. Finally, we have identified the task: "Search for planes that flew over Sanjaynagar at 12.30PM"!!
Stri's approach to solve the problem is to use open databases. Stri has provided a wrapper to many services such as flight, train, public transport, media, tv etc. With the wrappers, Stri can connect and fetch details for various query string, retrieve results and post it back to the Stri search engine. Stri engine then collects information, with confidence numbers and posts the results.
The technology can now be extended to a number of dimensions! One can actually search when he visited Paris based on flight details / email details or check-in information in facebook. Or it can extend to devices that the user owns or his friends. This is definitely a wave that will carry everyone with it on the internet!



Managing the most important project of our life called "LIFE" !


Introduction:
These days it is so common to have most of our everyday tasks and searches done online through hundreds of websites and services.
So many of our everyday tasks starting from searching for house/property ,looking for good travel deals , searching for reviews on school for kids , looking for reviews of household items or buying them online , looking for job also including searching for matrimonial alliances or business partners happens over the internet. Come to think of it , we are spending so much time online ..
Haven't we all  spent hours together on the internet - searching and then saving the data relevant to us either copy pasting info or saving them as bookmarks or taking printouts.


What if your whole online experience during different stages of our life can be integrated & managed by something like a "Life Project Manager" .

We have so many tools help manage our profession life .. why don't we give the same importance to the most important project of our life called "LIFE" !


Some Concepts:
Currently our web browsers do not really keep a context of what we are looking for at all times , even if they do, they do it to collect information to suggest good ads or for their business needs or analysis.

A "life project manager" would ideally have at least the following concepts :

Create a life project:
We could have a desktop/hosted tool , that is built on a user centric manner , that allows the user to
create specific personal projects . The project could deal with anything like a job search that he is pursuing or
a online property related search , or  maybe just collecting review on a particular interest .

Collect ,customize and store meaningful data:

Allows him to collects as much data from various online resources from within the tool . The data collected can
be stored in this tool ,along with the user comments or his own research and analysis in one single place.
For Eg : During a house  search process , the user might have collected more info or updated data on a current property by actually visiting the site , he will combine the online and his current research data and store it in the tool in a project which he could call "My House Search"  .

Sharing /Collecting Review  :
The user can chose to share specific projects like "My House Search"  with his family/friends to either help him review his options or just to help them with their own property search.


Create Multiple projects:At any point of time , there will be so many things happening in your life .
You could be searching for a new property and at the same time you would be looking for a new school for your kid
or thinking of changing you job .
You could creating multiple projects of your life in this tool and track them and work on them as and when you have time.Since this will contain the records of all your past work and research on that area and you can discontinue and resume at any point.

Further enhancements :

  1. We could have a online sharing mechanism to look at the important experiences of people in our circle and re-use  some of their resources or at least learn from their experience.
         For Eg. : we would definitely like to know the experiences of school search or reviews of    
         different schools  from the parents and we would definitely learn from their project "school"
    
     2.We would enter our personal details like location or addresses , personal preferences, stage of 
          life etc  in this tool , that can help in customizing our search experience on the net.


Some more Use Cases : 

Authors /Writers :
Assuming that the author/writer is working on many books/articles simultaneously
he would have collected lot of material /emails /suggestions from different people
and also from the internet for each of this. The tool can allow him to create
different projects for each of his works and then then track each of them
along with the data collected for that item.

Setting up a house :
This is really choatic project if not managed well. There will be so many things to buy online
to read reviews and collect opinion , get the best deals online and track several items like
interior design , plumbing ,electrical works etc.
All the online activity on each of these items and its result can be individually stored and tracked
with this tool.


Conclusion :
On the whole we know the internet is a huge ocean of data and resources that are waiting to be explored . But many a times this often leads to very unorganized or chaotic browsing patterns and very less meaningful data collected or atleast stored for future reference or sharing.

The tool will hopefully try to reduce the chaos in our "online" life and better manage the most important projects of our life.

Long live the internet!

Big data & Intuit? Nahhhhh.. it will never work!

Big data & Intuit? Nahhhhh.. it will never work!


Intuit is extremely good at adapting to technology & changing priority based on the trend. However, for some genuine reasons (that I am not aware of) Intuit is lagging way behind in making use of Big data to enhance the customer experience, improve product offerings & generate more revenue.

What are the key challenges that I could think?
- Legal aspect of the data needs to be taken care of
- Adding ability for traditional products to send data/analyze data is a challenge
- Handling multiple streams of devices/technologies to talk to a single platform
- Willingness of the customers/user to share data is a big challenge

Options currently available to address the challenges
- Technical limitations to handle big data are not an open question anymore. With Intuit deciding to use Amazon Web services (Amazon cloud) to host web sites & manage web applications, we are all set to receive big data from customers
- With the introduction of smart phones, multiple streams of device can easily talk to each other today. We can sue simple proven technologies like SOAP or REST based web services to make sure Intuit data services are platform/device independent

Next steps...
There two big challenges that would require a mindset change & would require involving discussions. Legal aspect of the data to be collected can be handled by making sure we meet all regulatory laws/policies. Once this is taken care of, we have a clear segregation about what data can be collected & what cannot be.

Based on the above analysis, we can always enable the feature on a limited set of products to collect legally allowed data on cloud. Analyze the data collected & make recommendations that will enhance the user experience. We can always run a pilot product with limited number of customers to understand the way users are reacting to this. Users can be provided with an option to opt out from sending any data.




Examples on where we can make use of the data

Specific example 1: Vendor scenario or supplier scenario
A small business employer decides to set up a new door manufacturing business.
He buys quick books and sets up a new company file. When setting up a company file, the recommendation engine based on the location and the type of business selected sends recommendations about possible suppliers and vendors which will aid him to set a company with ease and trust.

For Example; door delivery business, door knob supplier, hinge supplier and/or supplier details can be recommended for this user.


Specific example 2: Bank example
In collaboration with financial institutions, Intuit can recommend other financial institutions  for the employer to save money.
For Example,  let us assume that the property insurance at bank ABC is being paid $1000 every year. If bank XYZ is providing the same insurance at $900 a year, by this recommendation, a user can use $100 each year. 
The same recommendation can be applicable for other expenses.

The ideal e-commerce player - not on the web ?

Having seen the staggering growth of new e-commerce players in the market, and having had the privilege of working in one of the largest, there have been a number of occasions in which as a programmer my ideas were shot down in lengthy and energetic debates. That prompted the itch of "wouldn't it be great if" kind of situations. What would be an ideal type of situation if I were working in an e-commerce player ? How would you feel about these good-to-feel numbers:

  • Transactions: the site should have at least 1 million transactions a day
  • Customers: Nothing less than 1 million active customers
  • Communication channel: There should be some channel which can reach out to your base instantly, and with sufficient eyeball time
  • Product catalog: maybe restrict to just 50 to reduce complexity
  • Availability: The product should be available in the inventory in less than an hour
  • Delivery: If the product is in inventory, delivery should be instant
  • Competition: in single digits
So, what if we had all this ? Using data mining on all transactions, I could probably recommend (Amazon style) to 10k customers a product that may interest them through a communication medium which forces a response, with  of course instant instant delivery on one-click purchase. I could allow third party developers to integrate with my platform and let them add products to my inventory, and use my delivery and communication infrastructure. Payments, web-services, segmentation, marketplace, etc etc. 

This is all old news and whats been done already by the giants. However, this got me thinking about my current sector which I had believed was not so glamorous. Telecom has been compared to the Internet sector as a slow, monolithic, ugly overweight beast which takes decades to get anywhere. Compared to the lightning fast Internet startups that are changing consumer habits in a matter of months, Telecom has been seen as being part of the Signalling era (computer graduates would have to dust their engineering books to know what that means..). 

But, in spite of all the outdated technological paradigm, what struck me was that the telecom sector is probably the best e-commerce player out there ! Some of the operators I work with have 10s of millions of transactions every day (voice, SMS, data, VAS, etc) initiated by a massively diverse consumer base of more than 30 million, with a near real-time communication channel (SMS / USSD) which forces the customer to respond and availability and delivery being a no-brainer. And competition is definitely in single digits. 

Then, why is the telecom sector so slow to innovate ? Is it the case of Microsoft realizing that the Internet had whizzed past them ? Where are the Groupons, LinkedIns and Facebooks of the telecom world ? Big Data has been with these operators for more than a decade, so where's the Google or Yahoo! that can convert this into $ billions ? 

My belief is that this sector has got to open up, challenge the status quo and adopt and create the latest technology trends cause they have the right context, environment and resources to take over. Let developers access your infrastructure, anonymized consumer base and use analytics to discover hidden treasures. Empower and engage consumers with new ideas, platforms and apps to play with. use technological innovations to create buzz and interest in the consumer segment. The future should see them creating and powering these innovations (and not outsource it!). Thats where the new ecosystem would generate far more value, innovation and curiosity than an operator dominated one.

Till that time, I'll keep day dreaming of my LinkedIn through call records idea for my next post...

Is your mom cared enough?

     India is an ancient country. We have a history of thousand years. In many ways India ,as a country, is a grand-mom to almost all other countries in the world. In a pleasant contrast we are also a country of young people. According to World bank report published in 2012 every second person in India is young ( person of working age).  But it doesn't mean that rest all are old; remaining population is made of older or younger people. My specific interest was in knowing how many of them are old which typically means people above the age of 60 years. And data shows that 10% of them are old. It means every tenth person in India is old and this percentage is growing every day. By 2040 every eighth person in India would be old and then onward there would be steep increase in the number of elderly people around us. Are we, as a country and society, ready for this demographic change? Unfortunately answer for this question is big "NO".
     Our countries infrastructural and socioeconomic changes are in fact creating a very unfavorable environment for elderly people. If I have to state a few major problems then they would be...

1. Cost of Living and Medication 
2. Marginalization by society which is prominently young
3. Stress of lifestyle mismatch with current generation
4. Weakening of family bonds 
5. Psychological side effects of loneliness
6. Elderly unfriendly infrastructure and provisions  
7. Virtually non-existent elderly care system            

      All these factors have assumed big enough proportion to be looked into and addressed. Time has come that we proactively look into these issues and start creating necessary awareness about the elderly care which in turn may lead to favorable government policies, better focus from NGOs and possible attention from business community.
    My friends we owe so much to this grayed population; now time has come to return the favor. I appeal you to join us @ www.eldpal.com and become the part of this movement. Also request you to spread the word around so that many can be enlightened about the seriousness of this topic.

Thanks 
Prasad 
 
      

Thursday, March 21, 2013

Inter country marriage :) - android APPs on windows mobile



Every year smart phone market is seeing huge number of Android phones. What do you think made Android that popular?

  • Is its UI? 
  • Is its fastness? 
  • Is its robustness? 
  • Is its stability?
  • Is its APPs community?

I am sure everyone many not agree on a single answer for the above question. But based on my little knowledge of Android, I feel that Android's app community is the main reason for making Android popular.
Android uses java native APIs which calls the open max APIs to do the job. Where as windows phone uses direct show APIs to get the job done. In short there is a fight between android and windows. What do  you think will resolve this fight? Based on bollywood movie knowledge, I think it's better to get these two married. :P i.e. in other words get the android apps run on windows phone and get the windows apps run on android apps. I am sure that Bill Gates and Larry page will be against this idea. But this help mango people (AAM ADMI) to use the APPs seamlessly.

After telling the theme of our new bollywood movie, lets jump to what should be made to get our hero and heroine marry instead of our two main villans.
So lets get into some serious stuff.
What are the existing solutions for the present issue? A little googling about our problem shows that you can find that *Blue Stack* is one solution. With the help of blue stack we should be able to run android apps on windows. But this has serious limitation when running on tablets. I think this is bound to happen whenever a app is installed on any operating system because no app developer can test on all the existing platforms.

So what do you think should we do to solve our problem?
  1. Come up with a frame work which will help openmax calls routed to Direct show APIs and vice versa. But with this we will be able to port all Android apps run on Windows and Windows apps run on Android. But what if we have N number of OSes in the future.
  2. Install and boot multiple OSes on your phone. So that if you want to run a android app reboot your phone with Android OS and if you want to run a windows app reboot your phone with Windows OS. But lets wait!!! do you think that if you need to play a game or run a app, do you really want to reboot your phone? Atleast a lazy guy like me surely won't like this idea...
  3. While compiling the app, the app developer should be able to pick the windows libraries or android libraries and compile his code. With this a app developer will have the easness to get his app ready for windows and on android at the same time. But do you think a app developer will try to compile his code with both the OSes libraries? I hope it will be good if they can. But fingers crossed for this option.
  4. Have a APP operating system abstraction layer (APP OSAL) and make all the apps to use this APP OSAL. With this the app developer need not bother about the OS for which he is writing a app. He can simply call the APP OSAL in his applicaiton/game. With this any application can run on any OS. A IOS app can also run on a windows phone. A windows app can also run on a Tizen target. 
Again being a democratic country I think every one will have there own answers for the above questions. But I think the option 4 will help us generalize every app to run on every OS.

Is Zukerberg wrong in choosing Native against HTML5?

A lot of discussions are happening on HTML5 Vs the Native application development on the web. Some of the organizations like Facebook and Xero have ditched HTML5 mentioning it as premature. Having worked on HTML5 for sometime, I see a lot of benefits in HTML5 for certain kind of applications.

 Introduction to HTML5

HTML5 is a standard which allows you to develop applications once and deploy it on multiple platforms. In the current scenario when there are multiple OS like Android, iOS, BlackBerry, Tizen for mobile devices, there are two options

a) To develop native applications
b) To use cross platform technology like HTML5 .

Developing a native application means developing the application for each of these platforms. This increases the development & maintenance cost, effort, schedule.

HTML5 uses the webkit engine for rendering application pages, as webkit has become a defacto for all the mobile devices (iOS, Android, Tizen, Symbian) hence it provides a common platform for developing applications.

Things to consider before choosing HTML5

In the current context when lot of development is happening on multiple HTML5 based frameworks, it is important to understand the pros/cons of different frameworks and choose one which best suits your needs. For e.g. Jquery Mobile can be chosen if you are targeting a wide variety of mobile devices. There are other frameworks too like Sencha Touch, Appcelerator etc which are worth evaluating before choosing the platform for development.

It is important to understand the customer needs in terms of look and feel and make him aware of the performance he can achieve using HTML5. The UI/UX have to be designed extremely carefully in conjunction with the development team to ensure that you get the best possible user experience.

Developers having a thorough understanding of development tools and expertise in HTML5 development should be assigned the task, application developers who do not have HTML5 expertise can cause a disaster.

Designing things in the right way, making code reusable is also one of the most important factors to consider, in order to enable cutting on development and maintenance cost for HTML5 applications.

If the application does not need to be extremely rich in UI and does not use a lot of platform features like camera, video playback etc HTML5 is worth having a look at.

Conclusion

Applications with very rich look and feel and lot of platform integration involved might not be very well suited for HTML5 and hence a native approach should be taken. However, for other applications using the right HTML5 tools with a high quality design and development, application goals can be met with HTML5.

Are great leaders also great innovators?

As an Indian national, born and brought up in Bengal, I was raised with the culture that  Bose was any day a better leader than Gandhi.

What I was never told or taught was that Gandhi was not just a great leader, but also a great innovator. He actually innovated the Indian independence movement and others embraced that process in various directions. Today when I reflect back, I understand that much of Gandhi's leadership success was attributed to his systemic innovation method and prototyping to test those methods.

Leadership and innovation is very closely related. We tend to believe innovation is all about technology. We fail to recognize at times that innovation is a test of an hypothesis - be it technology or social or finance. So if you can get the results of the poof of your hypothesis, you can innovate anywhere.


Mahatma Gandhi used no force, and yet showed us how not resisting could be a powerful
force for change. His Mastery did not even seem to be leadership for most of his career
and yet from the beginning he was pursing the creation of a new reality.

Saurabh Ganguly is also a great leader. Today when I look back, he innovated a method by which he motivated the same team members to do way better than under his immediate predecessors and used each success to build on for the better future results. His methods were not only different from past Indian cricketers but also distinctly localised to suit the Indian culture and mindset.

Leadership and Innovation goes hand-in-hand. That's why the saying goes "Inspire through action" and "Lead by example". Leadership with systemic innovation of prototyping and testing the prototypes quickly and the ability to change and adapt quickly to realtime feedback is key to the success of the leader and his innovative methods.




Raining apps: Helping the sleek $500 phone become truly, madly & deeply SMART!!!!!!!!!





What do you feel when your friend is taking you for a drive in Bengaluru, hearing to a sweet lady called siri on the phone, avoiding huge traffic and helping lungs not getting carbonated.. & you imagine you did the same to your own little family somewhere in Hyderabad...but the phone not supporting that application... 

Though I work for a chipset manufacturing company that sells the hardware and software to several OEMs like Samsung, Sony, Fujitsu to name a few, I have little control over what OS they choose (Linux, Windows, z10 etc.,.), what applications and support they want to give to the end customers.

Eventually, I'm one of the customers & hence have very little choice of the applications & depends on the platform on which my phone was made.

I want to see an ideal world where my friend or my enemy's applications install and run easily on my phone irrespective of the platforms. Something like the "AFTER" in the below picture.





To do this, there needs to be a common application framework, that can be run seamlessly on all the platforms & should have associated Software Development Kit (SDK) which needs to be published to application developers and bring in faith & confidence amidst already existing monopolies like Google Android which doesn't want to support and go beyond the native apps. One instance of such framework is the HTML5/Webkit which has it's own latency issues, OEM acceptance. There are a number of challenges and obstacles to break and pass through...

Consolidating that I can think of are:-

 
                                               
A) By providing the cross compiler (android / windows) to app developers, which he can use to provide the libraries.

· This will be good in terms of time will it take to provide the app to market.
· This will increase the size of library of app.

B) By giving option to boot the phone in LA and windows both.

· Provide better way as will not require much testing and bothering about changes, much easier and quick to market, OEM needs to take care here.
· Need to define the HW specification and memory size separately
· Will increase the cost to end user.

C) Write a new framework similar to Webkit but that is more optimized in terms of performance and latency in taking the calls to native layers.

As the memory cost is reducing day by day and processing power increasing as per Moore's law, not more than 2-3 OS monopolizing the industry and becoming a only choices for the customers, option (B) appears to be a viable option. But the customer may not be willing to reboot the phone for additional applications. So (C) is a practical option and needs lot of research.

The number of OS manufacturers, OEMs, end customers & their tastes, recommendations are growing fast... It's the time that I wake-up and act...................


What the hell r u doing, oh installing android apps on windows...



Creating the way to run apps across windows/android mobiles:

Description:
I think today's scenario every one has smart phones and most of them are android due to penetration of the same is more in current market.
But people wants to have different phone with gr8  different looks, UI, speed (which windows can provide) and with lot of apps(on which android is the number one).
I am sure for windows it will take hell lot of time and work to reach till android, and we don't know by the time some otherbody will be in the market.
So to differentiate and to have all the android apps on windows need to have frame work to run the apps across the platform.


Here are the option to achieve the same.


OPTIONS: 
1. By providing the cross compiler (android / windows) to app developers, which he can use to provide the libraries.   
  • This will be good in terms of time will it take to provide the app to market.
  • This will increase the size of library of app.
2. By giving option to boot the phone in LA and windows both.
  • Provide better way as will not require much testing and bothering about changes, much easier and quick to market, OEMs needs to take care here.
  • Need to define the H/W specification and memory size separately
  • Will increase the cost to end user.

I will go for the option 2 as it has much brighter chances to lead the industry.