Thursday, August 25, 2011

An Early bird's view of Windows 8 "Metro UI"

Microsoft is formally making it's pitch to sustain and continue to hold the commendable position in the world of operating systems. In this efforts MS has recently announced it's revolutionized, most discussed, and would be most debatable Metro UI for windows 8 operating system.
 Just a day or two before this article was published, Microsoft has been granted patent for it's "Metro UI" from US patent and trademark office, and this patent was filed under the name 'Visual motion for user interface feedback'. 

What made Microsoft to invent "Metro UI" ?
Windows 8 derived this idea of  Metro UI from it's most popular "Windows phone 7" UI. As Microsoft burnt its figures with windows CE phones, since these phones failed to cater to user expectations in many areas, Microsoft really had to bring in radical changes and innovative features into its next generation of phones to stay in the competition and live up it's reputation. "Metro UI " is one of the biggest change that the designers at Microsoft stressed for.

Why is it even called "Metro UI" ?
There is an interesting story behind this. The designers at Microsoft were working hard to find out what makes humans to perceive  things quickly and easily. and  as research went on they found  that people showed capabilities to perceive Sign board, Warning boards, Information board displayed at Metro stations and many other public place.
Microsoft decided to milk out this idea, and redesigned windows phone UI as sign boards displayed at metro stations and named it as "Metro UI"

A sneak peek of Windows 8 Metro UI ...
Microsoft has re-engineered it's conventional desktop UI to bring in home screen concept in windows-8. This is a significant change when compared to all old versions of windows UI, however this Metro UI may doesn't seem to be a big change for windows phone 7 users as windows 8 UI is inline with windows phone 7 UI. Now Microsoft has decided to introduce this unique UI across all gadgets like Phones, Tabs, Desktops, Laptops etc..

As most of you all might be knowing Microsoft is expected to release windows 8 during Fall 2012, though beta releases are made available for selected OEMs there has been no official beta builds available for public . But few companies and geeks (rainmeter and omnino) are successful in emulating windows 8 metro UI on windows 7  and below are the few glimpses.

Home Screen :

  • Home screen is a unified central location providing quick access to apps, file system, multimedia utilities, E-mail clients, browser, HTML 5 and Java script based web apps and many more.
  • Home screen is all set to replace decades old  windows start menu.
 
Live Tiles :

  •  Home screen is customizable by adding live tiles which will be replacing static icons.
  • A live tile can be created for each of the application that you would like to have a quick access to
  • Live tiles are highly customizable like gadgets on windows 7.
  • These live tiles just not being acting as access points for applications but they also provide a summarised view of application content.
  • Live tiles are dynamic and they get updated with most recent application content.

Other Significant Changes :
  • Smooth switching between running apps .
  • Anchor and re-size apps to the sides of the screen to leverage true multitasking.
  • Touch optimised IE 10 with improved browser  engine.
  • Thousands of HTML5 and Java based web apps.
  • And many more undisclosed feature.

Most of us are hooked to a fact that "Seeing is believing" ,and from all the specs that Microsoft has made available for public, I'm sure that MS will emerge as a winner with this innovative UI. As Bill Gates always said "Passion and Innovation" are the key factor driving their business, and it looks this apatite for innovation has paid off.

After all we need "Change".. So looking forward to you Windows 8 :-)

Friday, August 12, 2011

Let me guess What You Like the most - Recommender Systems...

Have you ever wondered how a news paper site always displayed news of your interest. 
How google serves you with appropriate information that you are looking for. 
How Youtube lists out videos of your likings. 
How amazon computed your buying pattern.

Interesting right ?... Yes there is someone sitting behind the scene and reading your mind, constantly learning about your interests, quickly making best decisions about your likings, running complex algorithms  and performing thousands of computations to derive your web browsing behavior. 

So who is doing all these,  behind the scene ?
"Recommender Systems" a huge and most complex systems striving hard to serve user with the "Most appropriate " content in an automated fashion. These are the systems responsible for understanding user interests and behavior and presents them with the contents in line with their expectations. 

How does Recommender System work ? 
The functioning of recommender systems varies based on the business where they are deployed in,  but most of these systems run intelligent algorithms to extract the most appropriate contents from a large set of options available. These intelligent algorithms are not static, but they are constantly modified based on user responses for the contents presented.
Few of these recommender systems starts from nothing and gets going with constantly learning about user interests over a period of time and based on this data, it decides on the contents to be presented further.
Like this different recommender systems uses different techniques to arrive at best choice of contents.

Let's understand these algorithms by solving a real time problem. 

Problem Statement :
You being the editor of  "Yahoo" home page, your responsibility is to choose "5" articles out of  "30" available articles to be put on Yahoo India home page.



Why this issue is hard to resolve ?
Yes, this is really a complex problem, because the problem itself is very subjective. it's hard to derive at an algorithm which always returns the best predictions for all set of users. An algorithm which predicts extremely well for few set of users may turn out to be the worst algorithm for other set of people.
This is because the interests of people change from person to person,  person 'A' likes sports news, person 'B' likes news about politics, person 'C' is a stock broker, person 'C' always looks for news from Hollywood, like this the tastes and interests of the people are subjective and tend to change even based on geography.

Solution:
Here I'll try to explain solution for the above mentioned problem in simple terms, using two algorithms, one of them is a simple algorithms which is not very effective and the other one a highly effective algorithm based on probability which is currently being used by many news agencies.

Algorithm 1 - Predictions based on user groups.
This is a very simple algorithm which uses the following principle.

1) Create multiple geographical areas.
2) Consider a particular geographical area and predict interests of people in that locality .
3) Come up with different segments based on predictions.
4) The segments could be Sports, Politics, Cinema, Education, Science, Technology.
5) Now assign users to these different segments based on predictions.
6) At a given time assign all the available articles from different categories to different segments.
7) The article assigned to a segment which has highest number users gets first priority.
8) Article assigned to a segment which has next highest number of users gets second priority. Like this priorities of articles are decided.
9) Hence the algorithm arrives at ranking of all the available articles.
Predictions based on user groups
Algorithm 2 - Random Bucket Algorithm
This is the most efficient algorithm used in many recommender systems. This algorithm was invented by Charles Pierce a physicist in the year 1877.
The algorithm works based on true randomization, and this randomization completely removes bias, which means no article is presented subjectively inline with interests of a particular group of users, but Instead all the articles are presented randomly to a group of users who are also selected randomly.

Finally based on the users feedback of liking or disliking of the article, probability is found-out for each articles. The article with the highest probability gets first priority and the next article with the highest probability gets second priority and so on.

Let me explain this with a simple example. Say our goal is to find-out whether people like Coke most or Pepsi most, here is the trick.

1)  Randomly choose 10 people.
2)  Randomly distribute Coke or Pepsi to each one of them.
3)  Say 5 people got coke and 3 of them like it.
4)  And, say 5 people got Pepsi and only 1 of them likes it.

Which means the probability of people liking coke is more than the probability of people liking Pepsi.
Hence the conclusion is most of the people like Pepsi than Coke, This algorithm though looks simple is very complicated and proven to be most effective under all circumstances.

That's all, I hope you have got a brief introduction about the most challenging yet interesting research area "Recommender Systems". Most of the search engine companies, news and online shopping giants shell out a lot of money and significant amount of time on this research area with an intent of building the best recommender systems which gives out huge customer base in return.

If you are further interested to dig deeper into this topic.... Just Google it.. May be the best " Recommender System " will get you the most appropriate information.... :-)


Tuesday, July 19, 2011

Wherever you are, live happily.

Dear friends, I'm not writing this to share my condolences, or to say we miss you Vamshi because nothing on this earth can compensate for this loss. Person like Vamshi is hard to find and god showed that  it is even harder to have their presence here for long time , Vamshi is one in a million.

We all thought he was a  friend, brother, teacher, colleague.. but no I don't think so, he was just here to play his role and now it is that he has already said good bye, may be somewhere, something else is waiting for his arrival, who are we to stop ?

But being here he showed us the value of  love, friendship, caring, brotherly-hood and what not, he has set an example of how one should live a life filled with values. Because when you die you deserve nothing but just those few drops of tears from your loved ones, and you Vamshi , you deserved an ocean of it my dear.

In his 26 years Vamshi has not been heated by anyone, has not even wished bad for others, stood strong against all the odds, achieved greatest heights and won all of our hearts.

Here is a video of Vamshi spending some happy movements with his  friends Arun,Vinay, Madhava, Raghunandan,Ujwala and others..



And few sweet memories.


















Friends I don't believe in superstitions, but the day when Vamshi and his friend Pradeep got carried away by water stream and as the rescue operations started hoping to find them alive, the same evening and at the same place there " Appeared two rainbows one beside the other " . They said " Don't look for us , good bye ".


Pradeep I feel really sad for you brother, May god give all of the strengths to your parents to bear your absence. We miss you.

Vamshi might have disappeared from us physically, but he lives in our hearts forever. We are sure that he will come back soon in some form and lives among us... But still.... we miss you a lot dear, may the great soul rest in peace.

Tuesday, June 28, 2011

Matrix is back.... but this time instead of action, it's for fun..!!!!

Welcome back, this article isn't a review on hollywood blockbuster si-fi "The Matrix", but this is all about fun with the basic math element Matrices. During your grade school you might have played around with matrices, by applying basic operations, using different formulae, proving well defined theorems etc..

But this time we will keep all those things aside and take it to a different level wherein we explore different possible way to read a matrix and try out some interesting tweaks. Let's stimulate all those lakhs of unused neurons in our brains for the first time ( and this is a true fact) .

Here is the collection of few programming problems on matrices which I found on web, books and from friends. try to solve these using minimum number of loops, use recursion and achieve the best, worst case running time.
The problems are arranged on the basis of difficulty, moving from easier ones to difficult.

1) Given a M*N matrix of integers, convert all the integers in a row or column to zero, which already has a "Zero" in the input matrix.



2) Given a M*N matrix of integers,  write a program to read the matrix in a circular way, starting from inside-out.


3) Given a M*N matrix of integers, write a program to read the matrix in a zig-zag way.


 Note : This way of reading the matrix is used in Run Length Coding of JPEG image compression technique.

4) Given a M*N matrix of integers having both +ve and -ve numbers, write a program to find a sub-matrix with the maximum sum


5) Given a matrix from Sudoku puzzle, write a program to check whether the given matrix is a valid Sudoku puzzle or not by without solving the puzzle. Here we assume that there could be invalid input matrices.

That's all for now. Sharpen your pencil, take a sheet of paper ... Happy coding :-)



Thursday, June 23, 2011

Your first Windows Phone 7 App is just a few keystrokes away.

Hi, just by looking at the title of the article don't think that this isn't for you, in fact this article is intended for all those who is interested in knowing how a mobile app is being developed and deployed. And to understand this you need not be a hard core developer or not even required to be working in telecom domain, but just an urge to know and learn is enough.

Before actually getting into our first app development, let me brief you about the current state of the art of mobile phone application development. Mobile apps are being developed for multiple platforms and the current well known platforms which are buzzing with high app development activities are,
Apple iOS
Android
Symbian
Windows mobile.

All of these platforms have their own well established developer communities well known as "ecosystems", developers from these ecosystems constantly contribute to the community by developing apps which fall into wide range of categories, like Business, Entertainment, Utility, Multimedia, etc..
The well known app stores of today are OVI store by Nokia, iStore by Apple, Market Places by Microsoft and Android Market by Google.

In this article, I'm going to show you how an app can be developed for windows phone 7. I have chosen windows phone not because I'm biased, but simply because of the fact that it's very easy to set up the development environment, straight forward to understand, and very less development efforts.

So, Let's get started.
By the time this article was written Microsoft had just released beta version of Window Phone 7.1 developer tools. But since this is an introductory article to Windows phone app development I'm sticking to Windows Phone 7.0 development environment.

The minimum requirement to have windows phone 7.0 development environment is that your machine should be running at least windows 7 OS, next
1) Download SDK from here
2) Apply patch
By now your dev environment for windows phone 7.0 is up and running, The windows phone applications are Silverlight applications written in "C#" language and will be running on  silverlight framework

As our first application I'll be showing how to create a log in page for Facebook application.
After you've installed the Windows Phone Developer Tools, the easiest way to create your first application is to use Visual Studio.
  1. On the Start menu, launch Microsoft Visual Studio 2010 Express for Windows Phone .
  2. On the File menu, click New Project .
  3. From the project templates select Silverlight for Windows Phone and choose Windows Phone Application .
  4. Name the project and click OK.














5.  A new Silverlight app tfor Windows Phone project is created and opened in the designer.
6.  Edit the user interface as required by adding controls from the tool box and editing "XAML"


7. Write event handlers for " Log in " and " Exit " buttons , In this example the user name and password is hard coded as "vdr" and "admin" for successful log in case.

<Code>
namespace FacebookLoginPage
{ public partial class MainPage : PhoneApplicationPage
  {
public MainPage()   {
     InitializeComponent();
   }
   private void BTN_Login_Click(object sender, RoutedEventArgs e)
   {
    if (TB_UserName.Text.Equals("vdr") && TB_Password.Text.Equals("admin"))
    {
     MessageBox.Show("Login Successful");
    }
    else
    {
     MessageBox.Show("Enter Valid Credentials");
    }
   }
   private void BTN_Exit_Click(object sender, RoutedEventArgs e)
   {
    NavigationService.GoBack();
   }}}
 </Code>

8. That's all your app is ready to launch. Compile the code and run it  in windows phone 7 emulator.

Here are the screen shots of  application functionality.
1. Once the emulator comes up your application can be seen in the list of applications displayed. Here we can see  the app "FacebookLoginPage" which we have just created.



2. Launch the application, and you are directed to Home screen of the application.

































3. Log in with valid credentials.

































4. Successful log in.

































5. Log in failed.

































With this we have successfully created our first windows phone 7 app and also have reached the end of this article, but before putting a full stop I would like to highlight on few things.
Mobile phone application development is not a rocket science it's more of a fun filled and challenging activity. Since these days, as the mobile phones are becoming integral part of our lives the phone user base is also rapidly growing and this has exponentially triggered the need for various kinds of mobile apps for people working in diverse domains.
And it's time to put in all your creative ideas and create great applications to serve the human community in a much better way.

Good bye for now.

Monday, June 20, 2011

Better late than never.

Having my own blog was one of the long standing entry on my wish list which was hardly prioritized, and the reason for this are hundreds. May be the feeling of lack of experience, insight into different technical aspects, time, and not the least laziness..
But I feel it should get started at some point, you can't always wait for that perfect time to come to you. Being a regular follower of many technical blogs it also inspires me to share with others my ideas,views, and also a bit of knowledge gained over last few years of my professional carrier :-)

I strongly believe in the fact that sharing ones intellectual wisdom is very important aspect of human life, in fact today the human race has witnessed lightning revolution in the field of information and technology because each one here wanted to learn, share and be innovative.
All you IT folks, Stop for a movement and think, can you work for the next 24 Hrs without using "GOOGLE" and deliver quality work, it's really hard right or I can say not possible. This is because we are very much dependent on the knowledge of someone who has a very strong hold on the domain and ready to share his expertise with you. During the last three years of my career I can't remember a day on which I haven't used Web/Google, which clearly indicates that some one at some corner of the world is in need of your knowledge, so go ahead and share it.

And, finally let me share with you some info about me,
Pervasive computing, Human computer interaction, Multimedia are the areas of my interest.
I love application development and system programming and had mainly used programming languages C,C++,Win32 APIs, C#. And since I'm currently working in telecom domain I use symbian C++ and Qt C++.
As hobby projects I develop apps for desktop and for mobiles,  spare free time with friends, watch movies, cricket, music etc..

Your comments, suggestions are always greeted on the articles which I'll be posting on this blog.

ShareThis