How to enable Gmail's 'Undo Send' feature

We've had the ability to "unsend" emails in Gmail for about six years now, but the feature was somewhat hidden in the obscure Labs section of Gmail's settings. Google has officially announced that "undo send" is an option in its Gmail service, and it's much easier to find in Gmail's settings.

Before digging around the settings to enable undo send, you need to reload Gmail, otherwise you won't find the feature.

Then click the gear icon on the top left of your inbox.



You'll be taken to the general settings in the "General" tab. Look/scroll down to find the undo send feature, and click the box to enable it.



It's set to let you unsend an email for 10 seconds by default, but you can lengthen and shorten the send cancellation period from 5, 10, 20, or 30 seconds.


Next time you send an email, you'll notice a subtle new "undo" option in the yellow box that appears at the top of the Gmail window after you send an email. If you realized you missed something or notice a typo in your email, click the "undo" link, and your email will reopen in the "compose email" box for you to edit.

Unfortunately, there's no such option in the iOS or Android Gmail mobile apps where small mobile device keyboards means our emails are more prone to mistakes.
source: http://goo.gl/Igvb28

Why PHP is a badly designed programming language?

  • There are at least three ways of handling errors—return codes, 
    trigger_error()
    , and exceptions, all of which are handled differently and used inconsistently by functions and libraries, and require messing with various combinations of global settings (such as error_reporting to cause errors display or not display to the user. There are furthermore no agreed-upon conventions for handling errors, so libraries freely mix all of these methods along with directly printing errors to the output which is impossible to trap.  You're out of luck if you want to systematically trap and log all errors and exceptions.
  • Tons of global settings in php.ini that can be different server-by-server.
  • Support for international characters (mbstring and iconv modules) is a hackish add-on and may or may not be installed.
  • Arrays and hashes treated as the same type. Some see this as an advantage, but these are different data structures with different properties and uses. Plus, it's a pain when a function tries to be clever and returns an array with both named and numeric keys—you try to grab the array keys only and get a bunch of numbers in addition to the names.
  • No namespaces, up until recently.  Namespaces in PHP are optional, and all the functions that come with PHP are lumped into the global namespace.  Unlike languages like Python, where you can clearly tell what names have been imported into any file by looking at that file's import statements, in PHP you have thousands of  functions automatically imported by PHP, and more imported by any 3rd party code you are using, and possibility of clashing with any of these at any time.
  • Hash syntax versus class syntax—i.e. 
    $key['value']
     versus 
    $key->value
    —so when you are dealing with data structures that could be implemented either with hashes or stdClass (such as when retrieving values from MongoDB) you have to remember which you're getting, or convert from one to the other
  • Functions/methods always require parentheses e.g. you might have a model Person where 
    $person->first_name
     and 
    $person->last_name
     are instance variables, but 
    $person->full_name()
     is a method, and you have to remember that whenever calling it and include the parens, even if the fact that it's a function is irrelevant (such as in a view).  Unlike languages like Python, there's no straightforward way to make a method look like a property of a class.
  • Crazy reference model (in PHP4). Even in PHP5, to return an object by reference you have to use an & sign in two different places, on the function signature and on the assignment, lest you accidentally copy an object. Seehttp://www.php.net/manual/en/lan...
  • No closures or first-class functions, until PHP 5.3. No functional constructs. such as collect, find, each, grep, inject. No macros (but complaining about that is like the starving demanding caviar.)  Iterators are present but inconsistently used.  No decorators, generators or list comprehensions.
  • A whole bunch of things are considered false: null, false, empty string, zero, the string containing '0', empty array, and who knows what else.
  • The fact that == doesn't always work as you'd expect, so they invented a triple-equals === operator that tests for true equality:http://www.php.net/manual/en/typ...
  • If a function returns an array, you have to assign it to a variable before accessing an element, you can't just add an index after the function call.
  • Writing an array literal requires literally writing out the characters a, r, r, a, y, ( and ). Other languages let you use square braces for arrays or curly braces for hashes.
  • Constructors—is it 
    __construct()
     or 
    NameOfClass()
    ? Do you call the parent constructor with 
    parent::__construct()
     or 
    parent::NameOfParentClass()
    ? It depends what version of PHP.
  • How do you delimit HTML from output PHP code? 
    <? ?>
    <?php ?>
    <% %>
    ? Well, it depends on some global setting in php.ini.
  • PHP doesn't have multiple inheritance, fine, but it doesn't have mixins/modules, either.
  • There is no such setting as 'use strict', as there was in Perl. Want to have a warning if you mistype a variable name? Too bad, that would confuse the beginners. If you do enable PHP's E_ALL warnings, you get warnings and errors for all kinds of crazy things you don't want warnings for.
  • There is no standard, widely adopted way to create and install modules or code libraries as with Perl's CPAN, Python's easy_install and pip, or Ruby's gems and bundler.  PEAR is pretty bad and hasn't been widely adopted. Libraries are often packaged on an ad-hoc basis (i.e. download a zip file or copy and paste code).
  • PHP is exceptionally slow unless you install a bytecode cache such as APC or eAccelerator, or use FastCGI. Otherwise, it compiles the script on each request.
  • People often abuse 
    include()
    . Rather than using it to pull in functions and classes, they use include for actual code execution, often including other includes, creating code that is impossible to follow.
  • Because it is designed to be run in the context of Apache, PHP doesn't work very well as a command-line scripting language, so you end up writing your backend scripts in something else, usually shell, Ruby or Perl. For instance, if you try to create a long-running background process in PHP, you need to remember to override various php.ini settings, or your script may exit after a certain amount of time, have a memory limit imposed on it, or act in other unexpected ways based on limits PHP sets for code running as part of a web request.
  • It can be hard to find where functions are defined. In which of the 50 include files is 
    do_something()
     defined? (In fairness, this horror affects many other languages and frameworks, such as Ruby on Rails)
  • PHP lacks standards and conventions. Whereas all Rails programmers know what goes in app/controllers, what the common rake tasks are, and what the 'rails' command-line tool does, PHP projects are all arranged differently, so you need to decipher each project's unique arrangement and conventions before becoming productive in it. (The same can be said for any programming project in any language that is not based on a framework, so this is not really a unique fault of PHP.)
  • Depending on your server's settings and PHP version, you might have slashes "magically" added to your get and post input:http://php.net/manual/en/securit....  You may also have global variables magically created based on get and post input:http://www.php.net/manual/en/sec...
  • There are a variety of ORMs available all of which suck in different ways, such as bloated syntax, forcing you to write SQL statements as a bunch of function calls (i.e. 
    $something->select('column')->where('condition > 0')->...
    ), or excessive configuration. The one decent ORM (DMZ Datamapper: http://datamapper.wanwizard.eu/) is maintained by one person, and limited to the Code Igniter framework.
  • There's no standard for processing background tasks, such as Python's Celery, so most PHP programmers put what should be background tasks in controller code.  For periodic tasks, you end up managing separate cron scripts, and dealing with the problems of running PHP code as a shell script, or hacking together a way to have periodic tasks triggered by web requests, which is Wordpress's solution.
  • Because their are so many frameworks, development of add-ons and plugins is a fractured Tower of Babel. An add-on for Code Igniter will not work in Symfony or CakePHP, for example, let alone Wordpress, Drupal, or any of the many CMS's. The ecosystem progresses more slowly because everything has to be programmed multiple times for different platforms. Compare to a language like Ruby, where developers seem largely focused on Rails, or write framework-agnostic Ruby gems that will work with Rails, Merb, Sinatra, or anything else.  Or in a Django project, you can easily 
    pip install some-python-module-or-django-app
     and instantly have new functionality for use in your project.
  • Additionally, the multiplicity of frameworks and coding styles makes it harder to learn from other people's code. With a more widely used framework, when apps or components (controllers, views, libraries) are open sourced, it's possible to visit Github, browse the source of an app, and learn how another programmer approached a problem. With PHP, each site is mostly different, so learning from other people's code can happen, but at the more restricted level of individual functions or classes.
  • PHP has error messages in Hebrew, such as the well-known 
    T_PAAMAYIM_NEKUDOTAYIM
    http://news.ycombinator.com/item...

That being said, PHP has a number of advantages for certain types of sites, especially static sites that require a lot of flexibility. The 1-1 correspondence between URLs and files in the filesystem, ease of deployment by uploading or copying files, and the fact that routes, controllers, and the other overhead of a framework is optional makes for a very lightweight, flexible, easy to understand system. If I were creating a site managed by a large team, that was mostly focused on serving diverse static content as opposed to being a web application, PHP remains a good choice.  It's also good for dashing off one-off scripts in situations where time is of the essence and quality is not, such as at a hackathon.
source: quoran

How to Choose Which Programming Languages to Learn?

Programming is an essential skill to learn even if you don't want to make career in it. Programming teaches you how to think. It is very difficult task for a beginner to choose which programming language he/she should learn. Each programming language has its own particular use, as well as some pros and cons.

http://www.whoishostingthis.com/blog/wp-content/uploads/2014/08/What-Code-Should-You-Learn.jpg
Source: WhoIsHostingThis.com

Importing large files into mysql with phpmyadmin

I’m writing this here because it’s the third time I’ve had this problem, and the third time I’ve forgotten how to fix it! If you ever get hit with the error message:

Phpmyadmin error message

“You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.”
When trying to import large SQL files into mysql using phpmyadmin, the phpmyadmin documentation offers a few solutions, but I find the easiest method to overcome this is…
Find the config.inc.php file located in the phpmyadmin directory. In my case it is located here:


C:\xampp\htdocs\phpMyAdmin\config.inc.php
 
Find the line with $cfg[‘UploadDir’] on it and update it to this or if it is not there then just paste it there:

$cfg['UploadDir'] = 'upload';
 
 
Create a directory called ‘upload’ within the phpmyadmin directory.

C:\xampp\htdocs\phpMyAdmin\upload\
 
Then place the large sql file that you are trying to import into the new upload directory. Now when you go onto the db import page within phpmyadmin console you will notice a drop down present that wasn’t there before – it contains all of the sql files in the upload directory that you have just created. You can now select this and begin the import.
If you’re not using XAMPP on Windows, then I’m sure you’ll be able to adapt this to your environment without too much trouble.

Storing and retrieving unicode string (हिन्दी) using PHP and MySQL

I have to store hindi text in a MySQL database, fetch it using a PHP script and display it on a webpage. I did the following:
I created a database and set its encoding to UTF-8 and also the collation to utf8_bin. I added a varchar field in the table and set it to accept UTF-8 text in the charset property.
Then I set about adding data to it. Here I had to copy data from an existing site. The hindi text looks like this: सूर्योदय:05:30
I directly copied this text into my database and used the PHP code echo(utf8_encode($string)) to display the data. Upon doing so the browser showed me "??????".
When I inserted the UTF equivalent of the text by going to "view source" in the browser, however, सूर्योदय translates into &#2360;&#2370;&#2352;&#2381;&#2351;&#2379;&#2342;&#2351;.
If I enter and store &#2360;&#2370;&#2352;&#2381;&#2351;&#2379;&#2342;&#2351; in the database, it converts perfectly.
So what I want to know is how I can directly store सूर्योदय into my database and fetch it and display it in my webpage using PHP.
Also, can anyone help me understand if there's a script which when I type in सूर्योदय, gives me &#2360;&#2370;&#2352;&#2381;&#2351;&#2379;&#2342;&#2351;?


Solutio:
I wrote the following sample script which worked for me. Hope it helps someone else too
<html>
  <head>
    <title>Hindi</title></head>
  <body>
    <?php
      include("connection.php"); //simple connection setting
      $result = mysql_query("SET NAMES utf8"); //the main trick
      $cmd = "select * from hindi";
      $result = mysql_query($cmd);
      while ($myrow = mysql_fetch_row($result))
      {
          echo ($myrow[0]);
      }
    ?>
  </body>
</html>
The dump for my database storing hindi utf strings is
CREATE TABLE `hindi` (
  `data` varchar(1000) character set utf8 collate utf8_bin default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `hindi` VALUES ('सूर्योदय');

10 Best Countries To Live For Software Engineers

Have you ever wonder which country is the best to live for IT engineers?

Most of us would probably said – that one where they earn most. However, this is not the whole truth.

We prepared a list for you which presents median salary for software engineers across the top 10 countries and few more interesting statistics.



Methodology:
1. We chose the top 10 countries in the list of “highest median earnings of software engineers” (Data source: Indeed.com)

2. We compared the cost of living in these countries (Data source: Eardex)

3.  We used the “Happiness index” (Source: happyplanetindex )

Below we present a list of 10 best countries to live for software engineers.

10. Canada
I. Median annual pay for software engineer – $57500 

II. Position in the world ranking of “Happiness Index – experienced well-being” - 2
III. Position in the ranking of  “Best for workers: Countries” – 11 

9. New Zealand
I.Median annual pay for software engineer – $59600 

II.Position in the world ranking of “Happiness Index” - 17

III.Position in the ranking of  “Best for workers: Countries” – 8

8. Sweden
I. Median annual pay for software engineer – $61400 

II. Position in the world ranking of “Happiness Index” - 5

III. Position in the ranking of  “Best for workers: Countries” – 8

7. Germany
I. Median annual pay for software engineer – $63800

II. Position in the world ranking of “Happiness Index” - 27

III. Position in the ranking of  “Best for workers: Countries” – 20

6. Australia
I. Median annual pay for software engineer – $65900 

II. Position in the world ranking of “Happiness Index” - 8

III. Position in the ranking of  “Best for workers: Countries” – 14

5. Israel
I. Median annual pay for software engineer – $70700 

II. Position in the world ranking of “Happiness Index” - 10

III. Position in the ranking of  “Best for workers: Countries” – 10

4. Denmark
I. Median annual pay for software engineer – $71500 

II. Position in the world ranking of “Happiness Index” - 1

III. Position in the ranking of  “Best for workers: Countries” – 4

3. United States
I. Median annual pay for software engineer – $76000 

II. Position in the world ranking of “Happiness Index” - 16

III. Position in the ranking of  “Best for workers: Countries” – 7

2. Norway
I. Median annual pay for software engineer – $81400 

II. Position in the world ranking of “Happiness Index” - 3

III.Position in the ranking of  “Best for workers: Countries” – 6

1. Switzerland
I. Median annual pay for software engineer – $104200 

II. Position in the world ranking of “Happiness Index” - 6

III.Position in the ranking of  “Best for workers: Countries” – 24


Source: IT Flow

Good Engineer Vs Bad Engineer



This is inspired by the Horowitz Good Product Manager / Bad Product Manager paper. Good engineers are not always good, and bad engineers are not always bad. I believe in both the ability and necessity of personal and professional growth. I apologize to Ben Horowitz and humbly beg his forgiveness for my otherwise blatant plagiarism.

Good engineers understand the product they’re building. A good engineer researches, understands, and has a vested interest in data center operations when they’re building systems for data center operations, and high frequency trading and markets when they’re building systems for high frequency trading and markets. Bad engineers are not interested in the product and focus exclusively on the technology within the product. A bad engineer only sees trees, no forest.

Good engineers care about what customers want and need, and can quickly separate the two. They understand that customers sometimes ask for a faster horse, and in doing so help them figure out that a car needs to exist. Good engineers understand that the right product comes from a mix of deep internal domain experience and innovation, as well as iterative improvement and feedback from users. Bad engineers think customers are stupid and that users “just don’t get it.” Equally, bad engineers also always build whatever feature is asked of them without understanding why they’re doing so.

Good engineers care about the business. They know that without sales, there would be no money; without marketing, no one would know who they are or why people should care; without finance, they’d burn through all their money or go to jail for not paying payroll taxes; without administrative staff, the company would descend into chaos. Bad engineers believe that if they don’t understand what someone does then that person is not important; they fail to see that many don’t understand what engineers do nor how building software actually works.

Good engineers understand the real world and can operate within reasonable constraints. For example, customers do not upgrade software as soon as it’s released, companies have good reasons to run older versions of operating systems or databases and that not everyone has root access. Bad engineers see no value in backward compatibility. Bad engineers tell customers or support staff to upgrade the OS’s included python interpreter with a rpm out of EPEL because, honestly, 2.6 is ancient! Good engineers understand that quality, timing, performance, features, and maintainability are all important and make tradeoffs where necessary and appropriate. Good engineers anticipate and understand the logistics of deploying production software. Bad engineers can’t figure out why we don’t just rewrite the entire codebase in a new language today. Bad engineers are inflexible and intolerant of less than ideal circumstances.

Good engineers participate in positive, constructive debate over critical topics, and know when to let an argument go. Good engineers know how to disagree and commit, and help others do the same. Good engineers aren’t afraid of their own failures, and do not hold the failures of others against them. Bad engineers fight to death over tabs versus spaces, shave every yak, and paint every bike shed, sometimes more than once. Bad engineers point out every time they were right.

Good engineers can communicate complex ideas at the appropriate level for the audience. Bad engineers often cannot communicate at all.

Good engineers are good humans. They fundamentally understand that everyone usually has good intentions. Good engineers believe in collaboration over competition as a default mode and aim to hold everyone to a high bar. Good engineers know that good engineers come in many different forms. Bad engineers believe all other engineers went to the same school they did, have the same experience, or are the same gender, color, or sexual orientation as themselves.

Good engineers beget good engineers. Bad engineers believe there are no other good engineers.

Source: LinkedIn

Salary Comparison Tool

A Brick of Babri Masjid


The Story Of Mahant Laldas, A Hindu Priest Who Opposed The Demolition Of Babri Masjid 

In the 1991 documentary Raam ke Naam by noted documentary filmmaker Anand Patwardhan, the then Mahant of the Ramjanmabhoomi temple is being interviewed. In spite of the overwhelming controversy around the Babri Masjid Ramjanmabhoomi issue at that time, the unshakeable faith evident in his views instills hope in our heart. He says in the film, ‘not only in Ayodhya but all over India, people should oppose this. We should never hurt the religious sentiments of others and break their hearts. Our religion doesn’t permit this. Ram’s political ideal was prosperity for all… Like when we eat, all parts of our body get fed, so all the people are our own, none are big or small.’

Laldas was appointed by a court of law as the chief priest in the Ramjanmabhoomi temple in the year 1983 and continued in this position until the year 1992. Before being appointed as the priest, he used to oversee the work of the Ramjanmabhoomi Seva Samiti.

Throughout the years when he held this critical position in the very heart of the storm that was gathering around the Babri Masjid, he was a vocal opponent of the work of the Vishwa Hindu Parishad – he vehemently demanded Lal Krishna Advani to halt his rath yatra and at the same time declared that Muslims from outside Ayodhya and Faizabad should also not politicize the Ramjanmabhoomi-Babri Masjid issue. ‘The Hindus and Muslims of Ayodhya and Faizabad can resolve the issue themselves,’ he insisted. His fearless intervention must be understood in its context; in an interview to Madhu Kishwar in 1992, he pointed out that 50-60 mahants had been murdered all over Ayodhya. “I wonder how a person like me is still alive”, he said in that conversation.
All his attempts to resolve the situation peacefully failed. On March 1, 1992, he was removed from his position by the Kalyan Singh government. On December 6, 1992, the Babri Masjid was destroyed. In these months, Laldas feared for his life and is reported to have approached the local administration in Faizabad seeking protection, but his request went unheeded.

In the night of November 16, 1993, he was shot dead under suspicious circumstances.
Why does the memory of this forgotten, lone voice become relevant to us today?

Going back to the interview in the film Raam ke Naam, a question that echoes almost verbatim the sort of question many Indians are asking today about the recent elections is put forward by the interviewer. He refers to the increasing support for the campaign to demolish the mosque in Ayodhya and asks Mahant Laldas, ‘Today there seems to be a wave in our country… where those who speak of hatred… get a bigger following than those like you who speak of love.’

Mahant Laldas responds calmly, ‘It’s not like that. When a flood comes, when there’s a cyclone, all the trees and buildings fall down… There’s a verse written in the Aranya chapter of Ramayana: When the rains are heavy, the grass grows so tall that it’s difficult to find the right path. But the rainy season is short. Afterwards, people regain their ability to reason. So today the kind of things people do, it’s a kind of frenzy. But when they’re faced with the truth, when they realize how they were misled, they’ll boycott their leaders.’
You can watch Raam Ke Naam, the documentary by Anand Patwardhan here:
 

10 ways technology will change world by 2025

As technology changes the way we live our day-to-day lives, it is fascinating to imagine what the future will bring. We may like to imagine one day living on Mars with technology that lets us teleport our toothpaste from CVS and the ability to apparate like Harry Potter.
To help us better imagine what the future holds, Thomson Reuters' Intellectual Property & Science division compiled a report of the 10 innovations they believe will take place by 2025. They looked through research databases to find the top patent fields with the most inventions containing a priority date of 2012 or later.
These are the 10 innovations Thomson Reuters anticipates will become a reality by 2025:
Dementia will decline.
Thanks to a better understanding of the human genome and genetic mutations, doctors and scientists will be better able to detect and prevent diseases like dementia and Alzheimer's disease. By identifying problematic DNA, scientists will be able to produce actual technology to fight the biological decline of one's mental capacity.
Solar panel installation
Solar will be the biggest source of energy.
By 2025, methods for harvesting, storing, and converting solar energy will be advanced enough to make it the primary source of energy on our planet. Something called solar photovoltaic energy will use solar panels to heat buildings and water while powering devices at home and in the office.
Type I Diabetes will be preventable.
A human genome engineering platform will make it possible to modify disease-carrying genes and prevent conditions like Type I Diabetes. Doctors and scientists will be able to modify the RNA and DNA sequences that pass on the disease.
Food shortages and food price fluctuations will no longer be a problem.
Lighting and imaging technologies will improve crop growth year round and combat the problems of traditional farming. We will also be able to grow genetically-modified crops indoors. That means that disease and environmental factors will be less of an issue for crops, and the food we buy at grocery stores will be more consistently priced and available.
electric car dash pod san francisco
Electric transportation will be huge.
Tesla is already making a splash, but by 2025 electric vehicles will take over traditional vehicles. Their battery will be able to last longer, so you will be able to travel longer distances more easily. And airplanes will adopt the technology too, which will totally change the way we travel.
Everything will be digitally connected.
Wireless communications will dominate our everyday lives by 2025. Cars, homes, and appliances will be connected, and this will be the case around the world in every location. New technology will be able to store energy and serve as electrodes to deliver this hyper-connectivity.

Biodegradable packing will be the norm.
Packaging will be made of cellulose materials that are plastic-like but actually made of plant matter so it's biodegradable and better for the environment than the plastic bags we currently use at grocery stores.
There will safer, healthier drugs to fight cancer.
The toxic chemicals currently used to treat cancer can have harmful and debilitating side effects on patients, but by 2025, cancer-fighting drugs will be more precise and exact, leading to reduced side effects. More targeted drugs can bind to specific proteins and antibodies to cause a very specific action, and paired with advanced knowledge of gene mutations, this will lead to better treatments for cancer.
We will create DNA maps at birth to manage disease risk.
DNA mapping will be the norm thanks to advancements in single-cell analysis, nanotechnology, and Big Data technology. This could theoretically replace blood tests as a more accurate way of detecting diseases.
Harry Potter spell

Teleportation will be tested.
Recent research related to the Higgs Boson particle, also known as the "God particle," will help forward actual experimentation with teleporting. The idea is that turning off the Higgs Boson particle could let you travel at the speed of light and essentially teleport. It will only be at the beginning of testing, but there is a good chance there will be significant investing in testing teleportation.

Credit: ETCIO.com 
Picture courtesy- flickr.com

Want To Hack Into Your Android-Powered Smartphone? Here Are 10 Neat Tips!

A lot of tech savvy users like to play around with their smartphones. From editing your lock screen to using your phone to perform other activities, your smartphone can be used for all of them. Here are a few fun hacks that can come in handy! Android, android smartphone, hacking, Force reboot, safe mode, face detection, phone status, SD card, Hard Reset, Factory reset, Context menu
1.Force reboot

-Press Power Button + Home Key + Volume up button simultaneously, and you can reboot your  Android smartphone in case it's frozen.

2.Quick Google Access

Did you know that Android smartphones provide an easy way to access Google search in just a single click.

-Press menu key, hold it for couple of seconds and you'll have Google search ready for all your search needs.

3.Reboot Android in safe mode

Android versions jelly bean and upwards provide an option to reboot in safe mode.

To reboot in safe mode:

-Long press the power button

-Long press on the power off option

Users will be prompted to confirm a reboot in safe mode

The trick will disable all the 3rd party applications on your device, and is particularly helpful when either of these apps is playing spoilsport. You can re-enable the applications when you reboot your phone normally.

4.Unlock android phones by face detection

Android versions jelly bean and upwards provide a way to unlock your smartphone using face detection. Android jelly bean has added another layer of protection to make the feature even more secure. The smartphone can only be unlocked when the face matches as well as you require to blink your eyes to allow access. The blinking feature tells the device that you're alive and not a still image used by someone other than you to access your device.

To turn on the feature:

-Settings > Security > Screen lock > Face unlock

5.Get detailed information about phone status

Get detailed statistics like phone information, battery information, usage statistics and WiFi information by simply dialing the USSD code *#*#4636#*#*.

6.Move android apps to SD card

To move apps from your Android phone memory to SD card:

-Settings > Application settings > Manage application > Select the application > Move to SD card

7.Hard Reset and Factory reset your android phone

-In case of factory reset, your phone will be formatted to factory level: all your settings will go back to factory default and all the internal data will be deleted.

To factory reset a phone dial *#*#7780#*#*.

-In case of hard reset, all the data (including internal and external SD data) as well as settings of your android phone will be deleted without prompting for a confirmation.
To hard reset a phone dial *2767*3855#.

8.Context menu in android

Long pressing on the screen will bring out additional options for customising your android device.

9.Taking screen shots on android phone

You can take the screen shot on your Android phone without using any 3rd party application.

-For most Android phones: Press the Home button + power button.

-For Galaxy Nexus: Power button + volume down button.

-For Galaxy Note 2 and S3: Swipe your palm on the screen to take screen shot.

And so on.

10.Android Version Animation

-settings > about phone > Tab repeatedly on ‘Android version’.

The Android version will be animated after sometime

22 Resume Mistakes That Are Way Too Common

You have very little time to impress a recruiter with your resume. So the last thing you want to do is to make an easily avoidable mistake.
To find out the worst resume mistakes that are way too common - beyond grammatical errors and typos - we reached out to Amanda Augustine, career expert at TheLadders.
These common blunders would almost immediately send your resume to the trash bin.

1. It's too long.

Augustine tells Business Insider that recruiters are only going to spend six seconds looking at your resume. So the longer your resume is, the more difficult it will be for recruiters to scan it. An appropriate length is one to two pages.

2. Using an inappropriate email address.

Email is the preferred form of communication in today's workplace, so there's no excuse for you not to have an appropriate email address. Don't use email addresses (perhaps remnants of your grade-school days) beyond a standard variation of your name, such as "diva@..." or "babygirl@...," says Augustine.

3. Including your headshot.

Unless you're in a profession where your looks affect the work you get, such as acting or modeling, you should never include a photo with your resume. Including a photo greatly increases the chance you'll be discriminated against, and the recruiter will spend too much time looking at your picture instead of considering whether your skills fit the open position.
An eye-tracking heatmap created by TheLadders found that when recruiters check out your professional online profile, they spend 19% of the total time eyeing your picture, which means that not so much time is spent on your skills, specialties, or past work experiences. Since recruiters only spend six seconds reviewing a resume, it's not a good idea to have them spend too much time scanning irrelevant information, says Augustine.

4. Leaving out a URL to your professional online profile.

Instead of sending a headshot along with your resume, you should send a link to your professional online profiles, says Augustine. This will enable hiring managers to see what you look like after they've already spent an appropriate amount of time examining your resume.
Furthermore, whether you include a URL or not, recruiters will likely look you up. In fact, 86% of recruiters admit to reviewing candidates' online profiles, says Augustine, so why not include your URL along with your contact information? This will prevent recruiters from having to guess or mistaking you for someone else.

5. Embedding tables, images, or charts.

"Avoid adding any embedded tables, pictures, or other images in your resume, as this can confuse the applicant-tracking software and jumble your resume in the system," says Augustine.

6. Not aligning your resume with your online profiles.

"Whatever you're going to put out there, make sure your resume and online profiles are telling the same story," Augustine tells us.
"If you have a common name, consider including your middle initial on your resume and online professional profiles to differentiate yourself from the competition," she says. For example, decide if you're Mike Johnson, Michael Johnson, or Mike E. Johnson. Then use this name consistently, be it on LinkedIn, Google+, Twitter, or Facebook.

7. Leaving out relevant keywords.

Many companies use some kind of screening process to identify the right candidates, and if you don't have the right keywords on your resume, you won't even get through to a hiring manager.
"Identify the common keywords, terminology, and key phrases that routinely pop up in the job descriptions of your target role and incorporate them into your resume (assuming you have those skills)," advises Augustine. "This will help you make it past the initial screenings and on to the recruiter or hiring manager."

8. Using an objective instead of an executive summary.

Objectives are unhelpful and distracting, according to Augustine, so it's a waste of space to include them on your resume. Instead, replace this fluffy statement with an executive summary, which should be like a "30-second elevator pitch" where you explain who you are and what you're looking for. "In approximately three to five sentences, explain what you're great at, most interested in, and how you can provide value to a prospective employer," Augustine says.

9. Not addressing potential concerns.

Do you require a work visa sponsorship or are you willing to relocate for a job? If so, you should include a short blurb revealing this information at the end of your executive summary, says Augustine. It doesn't have to be long because you can go into more detail in the cover letter.
If you're trying to relocate to another city, remove your current city and state from your resume.

10. Using headers and footers.

It may look neat and concise to display your contact information in the header, but for "the same reason with embedded tables and charts, it often gets scrambled in an applicant tracking system," says Augustine. Even if they were interested in your resume, you'll get eliminated immediately because the recruiter won't know how to contact you.

11. Inconsistent formatting.

"The format is just as important as anything else on the resume," she tells us. "The key is to format the information in a way that makes it easy to scan and recognize your job goals and relevant qualifications."
Make your resume easy to read by sticking to specific formatting rules throughout your resume. For example, if you decide to include the month and year on your resume, you should adhere to this format throughout. If you decide to only using the year, that's acceptable as well, but don't switch back and forth between the two. You should also be consistent with locations and indentations.

12. Using crazy fonts and color.

"Stick to black and white color," says Augustine. As for font, it's best to stick with the basics, such as Arial, Tahoma, or Calibri.

13. Not having enough "white space."

White space draws the reader's eyes to important points. "When you start really messing with the margins on your resume, chances are you're cramming as much as you can in there, and you won't have enough white space," she tells us.

14. Not using reverse chronological order.

This is the most helpful for recruiters because they're able to see what you've been doing in recent years immediately, says Augustine. "The only time you shouldn't do this is if you're trying to transition to another career altogether, but then again, in this situation, you'll probably be relying more on networks," than your resume, she says.

15. Not including a company description.

While it's helpful for recruiters to know the size of the company you used to work for, including a brief description about the company will also let the hiring manager quickly understand the industries you've worked in. For example, an accountant in the tech industry may be considered very differently than an accountant in the hospitality industry.
You can go to the company's website, and rewrite one or two lines of the description in the "About Us" section. This should be included right underneath the name of the company.

16. Using dense blocks of text.

Dense blocks of text are too difficult to read, says Augustine. Instead, you should list your achievements in two to five bullet points per job. Under each job or experience you've had, explain how you contributed to or supported your team's projects and initiatives. "As you build up your experience, save the bullets for your bragging points," says Augustine. For example, "I generated $50,000 in annual savings by doing..."

17. Including more than 15 years of experience.

You should always tailor your resume based on the job you're applying for, and chances are that when you include experience that's older than 15 years, it won't be of interest to a hiring manager, says Augustine. Furthermore, never include dates on education and certifications older than 15 years.

18. Including irrelevant information.

If you work at a small company and you do a little bit of everything, you really need to think about the responsibilities and accomplishments you've had that are relevant to the job you're applying for, advises Augustine. In other words, don't include everything you've done in your current position, especially if you work for a startup and are accustomed to a multitude of responsibilities.

19. Not including relevant hobbies.

"Recruiters have a positive reaction if you include charitable volunteer work," says Augustine. "Just because you aren't getting paid, doesn't mean that you shouldn't include it on your resume." Again, do make sure to tailor the skills you acquired while participating in the hobby to the job position you're applying for.

20. Including skills that most job seekers will have.

Should you ever say that you're proficient in standard programs? This depends on what is deemed sought-after in your industry.
"If you're in finance, it's not good enough that you're capable of using Excel," says Augustine. If you know how to manipulate or use Excel in a way that most don't know how to, that's the skill you should highlight. Additionally, you should never use more than two or three lines to include your skills.

21. Writing in the third person or using pronouns in first person.

Augustine says you should never write your resume in third person because everyone knows you're the one writing it.
Instead, you should write it in first person, and do not include pronouns. "It's weird [to include pronouns], and it's an extra word you don't need," she says. "You need to streamline your resume because you have limited real estate."

22. Including "references upon request."

Every recruiter knows you're going to provide references if they request it, so there's no reason for you to include this line. Remember that space on your resume is crucial. Don't waste it on a meaningless line, Augustine tells us.