Tuesday, January 31, 2012

Compiler's implementation of New and Delete operators

Digging deeper into the implementation of New and Delete operators,  raises couple of question as listed below.
  • Under what circumstances a bad_alloc exception is thrown.
  • What if there is an exception thrown inside a constructor.
  • Who releases the heap memory allocated for the object, when constructor fails.
  • Is it possible to reuse a chunk of memory on the heap to reconstruct the object.
  • How to distinguish whether the exception is due to heap allocation error or due to a failing constructor.



Rather trying to answer these questions individually, it's better to explore compiler implementation of  " new " and " delete " operators which eventually answers the above questions.











 Consider CellPhone,a class declaration below

     class CellPhone
     {
         long IMEI ;
         char* DeviceName ;
      public:
         CellPhone(int ID, char* Name)
         {
             IMEI = ID ;
             strcpy(DeviceName,(char*)malloc(sizeof(strlen(Name)+1)));
         }
         void* operator new ( size_t size );
         void operator delete (void* buffer);
     };

The below instruction creates an instance of this class on the heap through " new " operator.

  CellPhone* PhoneObject = new CellPhone(900,"NOKIALUMIA") ;

New Operator
The "new" operator instantiates an object on the heap in two steps.

1) Allocate the required amount of  memory for the object, on heap
2) Call constructor of the class to initialize the object.

Instantiating the object on heap
To allocate memory on the heap "new" operator uses a function " operator new " as shown in the class declaration. This function allocates memory specified by " size_t " parameter on heap for the object and returns a " void* " pointer. And if the memory allocation fails, run-time will throw a " bad_alloc " exception.

      void* CellPhone::operator new(size_t size) throw (const char*)
      {
        void* buffer = malloc(size);    
        if(buffer = NULL) throw "Not enough memory to allocate for the object";
        return buffer ;
      }

The above function can be overloaded by the developer to provide custom implementations and excemption details.

Initializing the object by calling constructor 
Run-time achieves this functionality through " Placement new " operator which basically receives  " void* " pointer returned by " operator new " function, allocated on the heap and calls constructor of the  class to initialize the object as shown below.

Calling operator new function.
    void* buffer = operator new(sizeof(CellPhone)); // ----------->1

Typecast void* pointer to class specific pointer.
  CellPhone* PhoneObject = dynamic_cast<CellPhon*>(buffer);//Simple  static cast also would do.

Constructing the object at the allocated space using " placement new " operator.
    try
    {
       new(PhoneObject)CellPhone(900,"NOKIA LUMIA"); //------------> 2
    }
    catch(exception& e)
    {
        cout << e.what();
        operator delete( PhoneObject );
        throw "Exception inside constructor";
    }
    
    void CellPhon::operator delete (void* buffer)
    {
       free(buffer);
       buffer = NULL ;    
    }

The above programming structure clearly explains, how the exceptions from constructor is handled. The " placement new " operator shown in instruction #2 receives pointer to the buffer allocated as shown in instruction #1 and tries to construct the object at that location.
During this process if there is any exception thrown inside the constructor it is caught and the allocated memory is released back to heap using " operator delete ( ) " function, which is a compliment of " operator new ( ) " function.
With the above implementation user would be clearly able to distinguish whether the " new " operator failed due to "heap allocation error " or due to " exception thrown " inside the constructor.

I hope this article was helpful in demystify obscure implementation details of  "New" and "Delete" operators. Suggestions and comments if any is appreciated.

Thursday, January 19, 2012

Code Sprint - 2 , Algorithmic Problems

This post is for all the self proclaimed geeks who love resolving complex algorithmic problems. Below are the questions  from  code sprint 2 an online coding contest. Time to overclock your brains. Happy coding.

The Living History
Coin toss
You have an unbiased coin which you want to keep tossing until you get N consecutive heads. You've tossed the coin M times and surprisingly, all tosses resulted in heads. What is the expected number of additional tosses needed until you get N consecutive heads? Input: The first line contains the number of cases T. Each of the next T lines contains two numbers N and M. Output: Output T lines containing the answer for the corresponding test case. Print the answer rounded to exactly 2 decimal places. Sample Input : 4 2 0 2 1 3 3 3 2 
Sample Output : 6.00 4.00 0.00 8.00

Permutation
This is an approximation solution type problem. Please read about this type of problem at the bottom before attempting. Given n, print a permutation(p) of (0,1,2...n-1) From the permutation p, you can create n-1 (x,y) coordinates, where x and y are consecutive pairs in the permutation. You are also given the n x n square matrix V. For each coordinate, you can find an associated value in the matrix V. (x and y are 0-indexed) 
Task : Given n and V, find the permutation p that maximizes the sum of the associated values of the consecutive pair coordinates Constraints: n <= 50 Input: First line contains n Next n lines contains n integers, forming the matrix V 
Output : Space separated permutation of (0,1,2....n-1)

Polygon
There are N points on X-Y plane with integer coordinates (x i , y i ). You are given a set of polygons with all of its edges parallel to the axes (in other words, all angles of the polygons are 90 degree angles and all lines are in the cardinal directions. There are no diagonals). For each polygon your program should find the number of points lying inside it (A point located on the border of polygon is also considered to be inside the polygon). Input: First line two integers N and Q. Next line contains N space separated integer coordinates (x i ,y i ). Q queries follow. Each query consists of a single integer M i in the first line, followed by M i space separated integer coordinates (x[i][j],y[i][j]) specifying the boundary of the query polygon in clock-wise order. Polygon is an alternating sequence of vertical line segments and horizontal line segments.
Polygon has M i edges, where (x[i][j],y[i][j]) is connected to (x[i][(j+1)%M i ], y[i][(j+1)%M i ].
For each 0 <= j < M i , either x[i][(j+1)%M i ] == x[i][j] or y[i][(j+1)%M i ] == y[i][j] but not both.
It is also guaranteed that the polygon is not self-intersecting.
Output : For each query output the number of points inside the query polygon in a separate line.

Sub-sequence Weighting
A sub-sequence of a sequence is a sequence which is obtained by deleting zero or more elements from the sequence. You are given a sequence A in which every element is a pair of integers i.e A = [ (a 1 , w 1 ) , (a 2 , w 2 ) ,...,(a N , w N )]. For a sub-sequence B = [ (b 1 , v 1 ) , (b 2 , v 2 ) , .... ,(b M , v M ) ] of the given sequence : We call it increasing if for every i ( 1 <= i < M ) , b i < b i+1 .
Weight(B) = v1 + v2 + ... + vM .
Task : Given a sequence, output the maximum weight formed by an increasing sub-sequence 
Input : First line of input contains a single integer C. C test-cases follow. First line of each test-case contains an integer N. Next line contains a 1 , ... , a N separated by a single space. Next line contains w 1 , ... , w N separated by a single space. 
Output : For each test-case output a single integer number: Maximum weight of increasing subsequences of the given sequence.

Crab Graphs
A crab is an undirected graph which has two kinds of vertices: 1 head, and K feet , and exactly K edges which join the head to each of the legs.( 1 <= K <= T, where T is given) Given an undirected graph, you have to find in it some vertex-disjoint sub-graphs each one of which is a crab . The goal is to select those crabs in such a way that the total number of vertices covered by them is maximized. Note: two graphs are vertex-disjoint if they do not have any vertex in common. 
Input : First line of input contains a single integer C. C test-cases follow. First line of each test-case contains three integers N, T, and M (the number of nodes, max number of feet in the crab graph, and number of edges, respectively). Each of next M lines contains two space separated v 1i , v 2i meaning that the there is an edge between vertexes v 1i and v 2i . Note that the graph doesn't have parallel edges or loops. 
Output : For each test-case, output a single integer indicating the maximum number vertices which can be covered by some vertex disjoint sub-graphs of graph which are crabs

Picking Cards
There are N cards on the table and each has a number between 0 and N. Let us denote the number on the ith card by c i . You want to pick up all the cards. The ith card can be picked up only if at least c i cards have been picked up before it. (As an example, if a card has a value of 3 on it, you can't pick that card up unless you've already picked up 3 cards previously) In how many ways can all the cards be picked up? Input: The first line contains the number of test cases T. T test cases follow. Each case contains an integer N on the first line, followed by integers c i ,...,c N on the second line. Output: Output T lines one corresponding to each test case containing the required answer for the corresponding test case. As the answers can be very big, output them modulo 1000000007. 

Count strings
A regular expression is used to describe a set of strings. For this problem the alphabet is limited to 'a' and 'b'.
We define R to be a valid regular expression if: 1) R is "a" or "b" 2) R is of the form "(R1R2)" where R1 and R2 are regular expressions 3) R is of the form "(R1|R2)" where R1 and R2 are regular expressions 4) R is of the form "(R1*)" where R1 is a regular expression.
Regular expressions can be nested, and will always have two elements in the parenthesis. ('*' is an element, '|' is not; basically, there will always be pairwise evaluation) Additionally, '*' will always be the second element; '(*a)' is invalid.
The set of strings recognised by R are as follows: 1) If R is "a", then the set of strings recognised = {a} 2) If R is "b", then the set of strings recognised = {b} 3) if R is of the form "(R1R2)" then the set of strings recognised = all strings which can be obtained by a concatenation of strings s1 and s2 where s1 is recognised by R1 and s2 by R2. 4) if R is of the form "(R1|R2)" then the set of strings recognised = union of the set of strings recognised by R1 and R2. 5) If R is of the form "(R1*)" then the the strings recognised are the empty string and the concatenation of an arbitrary number of copies of any string recognised by R1.
Task : Given a regular expression and an integer L, count how many strings of length L are recognized by it. Input: The first line contains the number of test cases T. T test cases follow. Each test case contains a regular expression R and an integer L. Output: Output T lines one corresponding to each test case containing the required answer for the corresponding test case. As the answers can be very big, output them modulo 1000000007.
 

Monday, January 9, 2012

Backup Your Life , Before it Dies...

I am very delighted as I started writing my first blog article of 2012. Happy new year to one and all. I thought for a while on what is going to be the topic for this article, as I wanted it to be quite unique, non technical, informative to readers. So, there strikes a question which always haunted me... 

Is It Possible to Backup Life ?

 

Days, months, years are passing by as quick as 5 minutes snooze of morning alarm, which you never feel. Hundreds of people that we meet, hangouts with friends, events that we participate in, numerous social engagements, the places that we visit, images that we capture, sports that we play, seminar that we present, innovations that we make, heights that we achieve and the list just goes on.
But we tend to forget all these very quickly, people are lost in day-today engagements, an aggressive life style where things change very drastically.

I always thought, how good it will if I could remember or document all those things which I do everyday, and could exactly recount what I was doing on a particular day of the year when asked.. and the list just doesn't end here , it grows even further with many more wishes like,
  • Whom all I met in the years passed.
  • What problems I worked on.
  • What all the topics which grabbed my attention.
  • Which all the places that I have visited.
  • The sports that I played.
  • Images that I captured.
  • Parties that I attended. 
How can I backup all these information in a structured way ?
If I were thrown this question a couple of years back probably I would have had no answer. But now certainly we can address these questions by leveraging the power of web services. In the recent days web has evolved beyond our expectations, with could computing and easy access to internet one could reap the benefits of web services without any hassle.

Below is the brief description of how we can make use of free web services and applications to address all the issues mentioned above, and precisely " How can be backup our lives ".

People whom I met. 
Social networking sites like Twitter, Facebook, LinkedIn will fit the bill in addressing this concern. With the boom in social networking one can keep in touch his friends effortlessly. Now a days people from internet community are found at-least on one of the social networking site, and this is enough to keep in touch with the person of interest.

Building circles based on my profession and interests.
" Google Plus " is the answer. As most people say Google Plus is for geeks, being a networking site, G+ is heading in right direction in bringing like minded people from every corner of the world. And it  doesn't even expect that the participating members to be friend of each other.
Google Plus is a huge stream of free flowing information source which anyone can listen to. You just need to circle all the people, pages which you are interested in and they will keep you updated about latest technological innovations as you listen to their streams.

Articles which grabbed my interest.
A simple one word answer " Tweet " , tweet more, tweet all those articles which you found interesting. Unknowingly you are backing up all those articles of your interest and in future if you look back you end up having a well structured catalog of articles which you can refer back to.

Places that I have visited.
"Google Latitude" is the perfect application which you can use to keep record of all the places that you visit. Each time you visit a new place, mark it on Google latitude with the help of GPS, that's all. The records are saved in your Google account, ready to be referred back at any point in future.

Pictures that I have captured.
Online photo stores like Picasa, Flicker, Tumblr, will assist in keeping your pictures safe and lets you share your photographs with your friends, and get feedback on them. With the help of these applications you can let the world know that hidden artist within you. 

I want to keep my articles and notes safe for future reference.
Use " Evernote ", a quick note taking and documenting application which is platform and device agnostic, which can be used from anywhere and you are ensured that always you get the most updated data. No matter from whichever device you have edited the information it is all there synched on all the devices.

I want a Document repository which I could share with others.
" Dropbox " is the perfect application for you. Dropbox allows users to backup documents online which is ready to be extracted from anywhere and on any device. Dropbox also allows you to share some selected documents with your friends and hence helps in synchronizing between multiple people working on same documents.

Where can I backup my hobby projects.
"GitHub" a web hosting service for software projects. You can create your repository on this server and backup your code. You can also share repository with team members and it assists in combined efforts of a software development team.

And lastly....

I'm interested in knowing what is happening in others life
After all this is a basic instinct of human race. I don't need to mention the web service for this purpose, but this article would be incomplete if I don't mention it. Use " Facebook ", to be connected with people. That's all and the rest you only know.

With this, we have come to the end of this article. I hope following these would certainly help in backing up ones Social engagements, interests, views, skills, facts, desires, hopes, memories and what not. and hence you can " BACKUP YOUR LIFE".

Sunday, December 25, 2011

Modern Web Browsers - Things you must know - Part 1

Before you start reading this article click here, and there you go, you found information about your browser's current version and its capabilities. Now run a Google search to find out the most recent version of  your browser which is available and you can evaluate where you stand. if you are happened to be using an outdated version of your browser, it is time to update your browser. Premise is simple you must always be using an updated version of the browser to support web in all its glory and for secured online transactions shielded from hacking community.

The whole article is divided into two parts, The current article which is Part - 1 is written from an end user perspective, which explains few must to know about modern web browsers, introduces users to web applications, browser plugins and extensions, and addresses concerns over security of online transactions.

The Part - 2 of this article will be developer centric, which briefs on below topis.
  • HTML5 and web-video
  • Parsing of a web page
  • Rendering 3D contents
  • Hardware accelerated browser rendering
  • OpenVG and OpenGL

Let's begin with Part -1
Nothing  seems to be possible, working on a computer isolated from web infrastructure. Browser, the gateway to outside world is growing aggressively to a point that, it won't be a surprise if one day browser can replace the whole operating system itself.

And this aggressive development makes everyone who uses web browsers to access world wide web to must know about few basic facts listed below.
  • What goes behind the scene when an URL is entered.
  • What makes web pages highly interactive and enables rich UI
  • What is cloud  storage and cloud computing.
  • What are web applications.
  • What are browser plugins and extensions.
  • What are browser cookies.
  • User privacy and security.
So now take up these topics one by one and try to understand from an end user perspective.

What goes behind the scene when an URL is entered.
URL is human understandable format of a machine address, and these addresses are normally referred to as IP address. As an analogy consider a phone number saved on your device, then

Contact Name =  URL of the web server / Web site.
Contact Number = Address of the web server / Web site.

When an URL is entered, browser contacts DNS server which is same as a telephone directory to convert this human understandable address or URL to machine understandable address or IP . DNS server returns browser with the IP address of the server. Once the browser receives IP address of the server it fetches the HTML page on to local machine and renders it on to screen.

What makes web pages highly interactive and enables rich UI
During the early days of web technologies, web pages were written in basic HTML language to support only text and images but as the web community grew,  new web technologies were introduced and existing technologies were enhanced to bring in rich user interface and highly interactive user experience.
This was made possible with the introduction of Java Scripts, XMLHttpRequests, CSS (Cascading Style Sheets) , AJAX and lots of browser plugins. I'll be taking up these topics in depth in part -2 of this article.

What is cloud  storage and cloud computing
Every internet user must have used an E-mail application, would have backed up some files on a server, might have played online games, would have filled applications online. All these services are the results of cloud computing,

In short, cloud computing enables an internet user to use combined capabilities of thousands of servers without the knowledge of end user about where the data is being backed up, which server is doing computations, which server is maintaining all the history of browsing habits of a user and many more.

With cloud computing, it really doesn't require an end user's computer to have a good hardware configuration, but it should be capable enough to run browser at its maximum efficiency to leverage all its functionalities. Cloud computing made it possible to run complex applications smoothly on hand held devices with low processing capabilities.

What are web applications
Internet users who are using Google Chrome must be well aware of web applications however, users who are using other web browsers than chrome would be using web applications in the form of plugins but these are different nomenclatures of the same entity.

Web applications are simple applications running within the browser, and mostly built to perform a single specific task. for e.g a simple notes application which enables user to take some quick notes,  a sports app which is made to display live cricket scores. an online photo editor, a gaming app, a new mail notifier. and many more. All these applications comes very handy and mostly would be using the power of cloud computing.

What are browser plugins and extensions
Browser plugins and extensions are the add-ons which empowers the browser to do many more things beyond browser's basic capabilities.
To quote some, add-ons like Flash Plugin enables video playback on webpages, Adobe reader plugin helps browser to render pdf  files within web browsers, a currency converter, language translator etc. All these plugins give superpower to browsers to render various contents and helps cater to various requirements of an end user.

What are browser cookies
Browser cookies are some piece of information which websites wants to remember about you. So each time when you visit a web site, the site secretly sends information about your browsing interests to your web browser in the form of  cookies which is locally stored. So next time when you visit the same site, you will see articles, photos, videos presented are inline with your interests.

For e g, Amazon may always display electronic gadgets on home screen since most of the time you browse for electronic gadgets. YouTube may present you with technical videos since you always browse about new technologies.
This is how websites are able to serve thousands of users  with different interests and from varied backgrounds with the preferred  contents.

User privacy and security
Most of us think twice before going ahead with online transactions, all of us have a common question, " Is online transactions are safe " and my answer is " Yes it is " but only with a little risk. The system is not 100% shielded from hacking community.

But users need not panic on this, because the existing systems which handle online transactions are strong enough to challenge capabilities of hackers and even if hacked, the validity of hacked data might have been expired and which would be of no use to the hacker.

Users doing online transactions must be aware that all the transactions must happen through a secured connection, hence it is must to notice the type of the protocol used is " HTTPS ".
Also, users must not be misled by phishing sites, which look exactly like a genuine site from a bank or any other financial organization. The solution to this problem is to check for certificates or browser does this on your behalf. It can be noticed that when URL of a reputed bank is loaded the background of address-bar changes to green color indicating that this is a genuine site owned by the bank.

That's all for this current part - 1 of the article. I hope this was helpful in understanding the basics about modern web browsers. part -2 of the article would be more on internals of modern web browsers.


Saturday, November 19, 2011

How Well You Know About Mobile Sensors ?

Gone are those days, when people were using mobile devices only for calling and messaging purposes. The new era of technical innovations has carried these devices all the way from " Feature Phones " to " Smart Phones ".

With advancements in chipsets, sensor, and computing technologies we can change the way we interact virtually with physical world around us. Each minute data associated with every minute of our life is now modelled into living information and which is deployed by integrating this data with our day today life envisioning a most secured and comfortable living of mankind.

All the augmented reality solutions existing today wouldn't have been possible if mobile devices were just a piece of hardware without any sensors. These sensors are basically Micro-Electro-Mechanical-Systems abbreviated as MEMS.

So, let's get to know about the most common sensors available on smart phones of these days, and also their applications.


Ambient Light Sensor : 
These sensors are used in mobile devices to regulate the amount of display brightness. This regulation is achieved through measuring the intensity of light falling on sensor. 
Usability :
Under normal working conditions, lower the intensity of light falling on the screen, lower is the brightness of the screen and higher the intensity of light, higher is the display brightness.
This helps user to have consistent visual perception under all lighting conditions. 

Accelerometer Sensor :
Accelerometer measures the linear acceleration due to gravity along all the three orthogonal axes X, Y, Z based on movement of phone. To be put in simple terms , if you are tilting your phone in some direction, accelerometer will tell you in which direction the mobile is being tilted and by what amount.
Usability :
On handheld devices accelerometers are basically used for gaming, like racing games, basket ball etc..
And it is also used for utility applications like health monitoring apps, bubble leveling etc.

Compass Sensor :
Compass sensor basically works like a normal prismatic compass which precisely points towards four cardinal directions, North, South, East, and West.
Usability :
These sensors are specifically used for maps applications to assist in navigation. Also compass sensors are used in utility applications like a compass app.

Orientation  Sensor :
Orientation sensor reflects the orientation in which the device is held. This orientation shouldn't be confused with the landscape and portrait modes of the UI.
The orientation values indicate whether the device is held in Top up, Top Down, Left up, Right up, Face up, Face down positions.
Usability :
As like accelerometer , orientation sensor is also used for gaming and in utility applications.

Gyroscope :
Gyroscope measures the angular velocity of the rotation of device in all the three orthogonal axes in units of degrees per second.
Usability :
Gaming and Utility applications.

Proximity Sensor :
As the name itself describes, proximity sensor indicates the proximity of the nearby objects around the device, this is achieved by emitting a beam of electromagnetic radiation and measuring the single strength returned.
Usability :
Gaming and Utility applications.

Tap Sensor :
Tap sensor reads the direction in which tap event is triggered along three orthogonal axes. The tap event is read as a tap, followed by a drag event along an axes.
Usability :
Gaming, the well known game Fruit Ninja mainly uses this sensor.

There still exists a few more less significant sensors like rotation sensor, magnetometer etc.. and the story doesn't just end here, with the success of Android, and iOS thousands of research projects are being carried-out parallelly all around the world, people are working around the clock , chasing their dreams, destined to build the world of future.

Monday, November 7, 2011

Now it's Kindle Fire Vs Lenovo IdeaPad A1 Vs Nook Tablet

Well, the competition is getting more fierce, as within two to three months of time the stupendous efforts from OEMs have resulted in announcement of three low cost affordable tablets from the most trusted brands in the tablet space.
The three major devices announced were :
  • Kindle Fire by Amazon
  • IdeaPad A1 by Lenovo
  • Nook Tablet by Barnes and Noble




Both IdeaPad A1 and Kindle Fire costs $199, while Nook tablet costs $249. From the hardware spec point of view all the three devices carry almost the same configurations with slight feature additions on some of the devices.

Operating System :
Both IdeaPad and Nook runs Android 2.3 (Gingerbread). But Kindle Fire runs on a customized Android version by Amazon.

Screen Dimension : 
All of the three devices sport 7-inch capacitive touch display, with 1024*600 resolution.
Nook, and Kindle Fire uses In Place Switching technology to support wide viewing angle.
Processor :
All of the three devices are equipped with Texas Instruments OMAP  1GHz Processor. But just the processor on IdeaPad is not duel core.
RAM :
Nook tablet hosts a powerful 1 GB of RAM, while kindle fire and IdeaPad has 512 MB of RAM.

Storage :
kindle fire - 8 GB internal, and no expandable memory.
IdeaPad and Nook -  Both have 16GB internal storage, and expandable memory upto 16 GB.

Blutooth Support :
Only Lenovo IdeaPad supports Bluetooth Version 2.1 + EDR and none of the other two tablets support any version of the bluetooth. This gives an upper hand to IdeaPad in the competition.

USB :
USB 2.0 (micro-B connector)  is available on all of these three devices.

3G :
The only feature which make these three devices take a back seat is the lack of 3G support. Basically these devices doesn't have a SIM slot at all.
Though few variants of IdeaPad has 3G support, it boosts up the price as well.

Wi-Fi :
Available on all the three devices. 802.11 standards.

I would like to stop at this point, as this is not a complete product review. I just wanted to touch upon the important hardware specs as mentioned above. These devices have marked beginning of a new era in tablet space. However this is just the beginning as the tablet business is picking up no wonder there would be other players venturing into this business.

Thursday, October 27, 2011

NOKIA's Second Innings Begins With Brilliant Windows Phones - NOKIA LUMIA

Nokia launches its most awaited windows phones during the NOKIA WORLD 2011 event held at London on 26th October 2011.
The two new windows phones from NOKIA announced with the theme “NOKIA LUMIA EASIER, FASTER, FUNNER” were NOKIA LUMIA 800, and NOKIA LUMIA 710. Both of these phones showcases a brilliant design work, LUMIA 800 looks alike N9 with a mono block and curved glass 3.7” 800*480 AMOLED capacitive display. While LUMIA 710 is being branded as “first affordable windows phone” features 3.7” TFT capacitive display.

Most importantly both of the devices are powered by 1.4 Ghz Single Core Qualcomm’s Snapdragon Processors for smooth and quick response.

NOKIA LUMIA 800


LUMIA 800 takes social networking to its next levels by intuitively integrating Facebook, Twitter, E-Mail, Chat, SMS for instant social and image sharing. And it also features Internet Explorer 9 and HTML 5 applications.



LUMIA 800 has “ NOKIA DRIVE “ as like OVI MAPS  for voice assisted navigation which is a major advantage as most of the existing nokia customers have been accustomed to OVI MAPS and would be happy to have the same maps with lot more features on windows phones.

When it comes to music, LUMIA 800 features “NOKIA MUSIC” enabling users to access over 14 million tracks divided across various catalogues based on locality. And the users have also have access to nearly 100 radio channels.

Hardware Specifications:

Networks : WCDMA 850/900/1900/2100, GSM/EDGE 850/900/1800/1900
Speed : HSDPA cat 10: 14.4 Mbps, HSUPA cat 6: 5.76 Mbps
Display : 3.7” WVGA (800x480) AMOLED capacitive touch ClearBlack display with pinch    zoom, 2.5D curved glass seamlessly integrated to unibody
OS : Windows Phone Release - Mango
Memory : 16GB internal user memory, 512MB program memory
Camera : 8Mpix auto-focus Carl Zeiss, LED flash, Video capturing MPEG-4 720p @ 30 fps
Size/Weight : 116.5 mm x 61.2 mm x 12.1 mm (LxWxT) / 76.08 cc / 142 g
Connectivity : WLAN 802.11 b/g/n, Bluetooth 2.1, A-GPS, micro-USB connector and charging, 3.5mm AHJ connector, Accelerometer, Proximity, Magnetometer, ALS
Processor : 1.4 GHz Single Core MSM8255 (WCDMA)
Audio : MP3 player, Audio jack: 3.5mm, Supported codecs: mp3, AAC, AAC+, eAAC+, m42, m4b, wma, EVRC, QCELP
Battery : 1450 mAh Music playback: up to 55 hours

NOKIA LUMIA 710





The first affordable windows phone LUMIA 710, allows the user to customize outward looks by exchanging back covers available in 5 different colors.

Like LUMIA 800, LUMIA 710 also enables social networking and instant image sharing by integrating Facebook, Twitter and Linkedin. Even LUMIA 710 supports “NOKIA DRIVE” for voice navigation and “NOKIA MUSIC” and radio channels for music and entertainment.

Hardware Specifications:
Networks : WCDMA 900/1900/2100, GSM/EDGE 850/900/1800/1900
Speed : HSDPA cat 10: 14.4 Mbps, HSUPA cat 6: 5.76 Mbps
Display : 3.7” WVGA (800x480) TFT capacitive touch ClearBlackTM display with pinch zoom
OS : Windows Phone 7.5 - Mango
Memory : 512MB RAM, 8GB storage
Camera : 5Mpix auto-focus, LED flash, Video capturing MPEG-4 720p @ 30 fps
Size/Weight : 119mm x 62.4mm x 12.5mm (LxWxT) / 81.1cc / 125.5g
Connectivity : WLAN 802.11 b/g/n, Bluetooth 2.1, A-GPS, micro-USB connector and charging, 3.5mm  AHJ connector
Processor : 1.4 GHz Single Core MSM8255 (WCDMA)
Audio : MP3 player, Audio jack: 3.5mm, Supported codecs incl.: mp3, AAC, AAC+, eAAC+, wma
Battery : 1300 mAh
 
What important features NOKIA LUMIA lacks.
NO NFC.
NO HDMI output.
NO MICROSD slot

Pricing and Schedule
LUMIA 710 is priced around 270 Euros and is expected to hit European market by early November and later in India, Hong Kong, Russia, Singapore, and Taiwan by the end of 2011.
LUMIA 800 is priced around 420 Euros and will hit the shelves of UK, France, Italy, Netherlands, Spain, Germany by early November and US market in the beginning of 2012.


ShareThis