Friday, 27 December 2013

Java Versions, Features and History

Java Version SE 7

Code named Dolphin and released on July 28, 2011.

New features in Java SE 7

  • Strings in switch Statement
  • Type Inference for Generic Instance Creation
  • Multiple Exception Handling
  • Support for Dynamic Languages
  • Try with Resources
  • Java nio Package
  • Binary Literals, underscore in literals
  • Diamond Syntax
  • Automatic null Handling.

Java Version SE 6

Code named Mustang and released on December 11, 2006.

New features in Java SE 6

  • Scripting Language Support
  • JDBC 4.0 API
  • Java Compiler API
  • Pluggable Annotations
  • Native PKI, Java GSS, Kerberos and LDAP support.
  • Integrated Web Services.
  • Lot more enhancements.

J2SE Version 5.0

Code named Tiger and released on September 30, 2004.

New features in J2SE 5.0

  • Generics
  • Enhanced for Loop
  • Autoboxing/Unboxing
  • Typesafe Enums
  • Varargs
  • Static Import
  • Metadata (Annotations)
  • Instrumentation

J2SE Version 1.4

Code named Merlin and released on February 6, 2002 (first release under JCP).

New features in J2SE 1.4

  • XML Processing
  • Java Print Service
  • Logging API
  • Java Web Start
  • JDBC 3.0 API
  • Assertions
  • Preferences API
  • Chained Exception
  • IPv6 Support
  • Regular Expressions
  • Image I/O API

J2SE Version 1.3

Code named Kestrel and released on May 8, 2000.

New features in J2SE 1.3

  • Java Sound
  • Jar Indexing
  • A huge list of enhancements in almost all the java area.

J2SE Version 1.2

Code named Playground and released on December 8, 1998.

New features in J2SE 1.2

  • Collections framework.
  • Java String memory map for constants.
  • Just In Time (JIT) compiler.
  • Jar Signer for signing Java ARchive (JAR) files.
  • Policy Tool for granting access to system resources.
  • Java Foundation Classes (JFC) which consists of Swing 1.0, Drag and Drop, and Java 2D class libraries.
  • Java Plug-in
  • Scrollable result sets, BLOB, CLOB, batch update, user-defined types in JDBC.
  • Audio support in Applets.

JDK Version 1.1

Released on February 19, 1997.

New features in JDK 1.1

  • JDBC (Java Database Connectivity)
  • Inner Classes
  • Java Beans
  • RMI (Remote Method Invocation)
  • Reflection (introspection only)

JDK Version 1.0

Codenamed Oak and released on January 23, 1996.






Wednesday, 18 December 2013

Reading properties file in Spring

weekendplan_prod.properties
activation.user.notvalid.msg  = Requested user is not authorized.
 
applicationContext.xml
 
<bean id="kleverlinksProperties" 
class="com.kleverlinks.common.utils.KleverlinksPropertyutil"> <property name="systemPropertiesModeName" 
value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
          <property name="ignoreResourceNotFound" value="true"/>
          <property name="locations">
            <list>
              <value>classpath:weekendplan_prod.properties</value>
            </list>
          </property>
          <property name="ignoreUnresolvablePlaceholders" value="true"/>
        </bean>
weekendplan_prod.properties is name of the property file.
 
KleverlinksPropertyutil.java
package com.kleverlinks.common.utils;
import java.io.IOException;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
 * 
 * Loads properties from the property file.
 * 
 */
public class KleverlinksPropertyutil extends PropertyPlaceholderConfigurer{
  private static Log log = LogFactory.getLog(KleverlinksPropertyutil.class);
  static Properties proeprties;
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
  throws BeansException
   {
       try
       {
        proeprties = mergeProperties();
        convertProperties(proeprties);
        processProperties(beanFactory, proeprties);
       }
       catch(IOException ex)
       {
        log.error("Exception while reading the properties file " +ex);
       }
    }
     public static String getStringValue(String key) {
      return proeprties.getProperty(key);
     }

}
How to use properties in property file
System.out.println( KleverlinksPropertyutil.getStringValue("activation.user.notvalid.msg"));  
OUTPUT:
Requested user is not authorized.
Another way to configure property file:
<bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
     <property name="location">
      <value>database.properties</value>
    </property>
  </bean>
 
 
 

Tuesday, 17 December 2013

How to access css/js files in jsps or js file path in jsp context path

PROBLEM:
Project Structure is

webapp
   ||
   ||==css
   ||==images
   ||==js
   ||==WEB-INF

I have given
<link type="text/css" rel="stylesheet" href="/css/accordian.css" /> 
  
http://localhost:8080/--here it will be appended.

If I remove "/css " and place "css"

http://localhost:8080/EmployDetailsSpring/controller/userauthentication/login
It removes last appended string and places  css/accordian.css 
http://localhost:8080/EmployDetailsSpring/controller/userauthentication/css/accordian.css

SOLUTION:
Place project name before path.

    <img alt="" src="/EmployDetailsSpring/images/banner.png" />

EmployDetailsSpring is my Project name.

But if Project name changes its a headache to change all paths.To over come that we use
<%=request.getContextPath()%> which means Project name it self.

For IMAGE
  <img alt="" src="<%=request.getContextPath()%>/images/banner.png" />
For JS
<script type="text/javascript" src="<%=request.getContextPath()%>/js/cycle-plugin.js"></script>
For CSS
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/accordian.css" />

above one means same but if Project name changes we dont need to change manually.

Tuesday, 10 December 2013

Hadoop: What it is, how it works, and what it can do

Anyone concerned with information technology needs to know about Hadoop.

The seeds of Hadoop were first planted in 2002.

What it is:
 The Hadoop platform was designed to solve problems where you have a lot of data — perhaps a mixture of complex and structured data — and it doesn’t fit nicely into tables.

Example: Images,Audio,Video,PDF,Word,XML any kind of unstructured data.

Hadoop is a data storage and processing system. It is scalable,fault-tolerant and distributed. The software was originally developed by the world’s largest internet companies to capture and analyze the data that they generate. Unlike older platforms, Hadoop is able to store any kind of data in its native format and to perform a wide variety of analyses and transformations on that data. Hadoop stores terabytes, and even petabytes, of data inexpensively. It is robust and reliable and handles hardware and system failures automatically, without losing data or interrupting data analyses.

Hadoop is designed to store big data cheaply on a distributed file system across commodity servers. How you get that data there is your problem. And it’s a surprisingly critical issue because Hadoop isn’t a replacement for existing infrastructure, but rather a tool to augment data management and storage capabilities. Data, therefore, will be continually going in and out.

How it works:

Hadoop runs on clusters of commodity servers. Each of those servers has local CPU and storage. Each can store a few terabytes of data on its local disk.

The two critical components of the Hadoop software are:

The Hadoop Distributed File System, or HDFS

HDFS is the storage system for a Hadoop cluster. When data arrives at the cluster, the HDFS software breaks it into pieces and distributes those pieces among the different servers participating in the cluster. Each server stores just a small fragment of the complete data set, and each piece of data is replicated on more than one server.

A distributed data processing framework called MapReduce

Because Hadoop stores the entire dataset in small pieces across a collection of servers, analytical jobs can be distributed, in parallel, to each of the servers storing part of the data. Each server evaluates the question against its local fragment simultaneously and reports its results back for collation into a comprehensive answer.

MapReduce is the plumbing that distributes the work and collects the results.
Both HDFS and MapReduce are designed to continue to work in the face of system failures. The HDFS software continually monitors the data stored on the cluster. If a server becomes unavailable, a disk drive fails or data is damaged, whether due to hardware or software problems, HDFS automatically restores the data from one of the known good replicas stored elsewhere
on the cluster. When an analysis job is running, MapReduce monitors progress of each of the servers participating in the job.If one of them is slow in returning an answer or fails before completing its work, MapReduce automatically starts another instance of that task on another server that has a copy of the data. Because of the way that HDFS and MapReduce work, 
Hadoop provides scalable, reliable and fault-tolerant services for data storage and analysis at very low cost.

Hadoop stores any type of data, structured or complex, from any number of sources, in its natural format. No conversion or translation is required on ingest. Data from many sources can be combined and processed in very powerful ways, so that Hadoop can do deeper analyses than older legacy systems. Hadoop integrates cleanly with other enterprise data management
systems. Moving data among existing data warehouses, newly available log or sensor feeds and Hadoop is easy. Hadoop is a powerful new tool that complements current infrastructure with new ways to store and manage data at scale.

What it can do:
Hadoop solves the hard scaling problems caused by large amounts of complex data.As the amount of data in a cluster grows, new servers can be added incrementally and inexpensively to store and analyze it. Because MapReduce takes advantage of the processing power of the servers in the cluster, a 100-node Hadoop instance can answer questions on 100 terabytes of data just as quickly as a ten-node instance can answer questions on ten terabytes.
Of course, many vendors promise scalable, high-performance data storage and analysis.Hadoop was invented to solve the problems that early internet companies like Yahoo!and Facebook faced in their own data storage and analysis. These companies and others actually use Hadoop today to store and analyze petabytes thousands of terabytes of data. Hadoop is not merely faster than legacy systems. In many instances, the legacy systems 
simply could not do these analyses.


Thursday, 21 November 2013

How to get values from properties file in Java by a custom method

application.properties

password.url = http://192.0.0.1:8080/Sample/resetpassword
portal.url=http://192.0.0.1:8080/Sample/home.html

Constants.java
package com.tb.module.service;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class Constants {

 public static final String jsp=getResetPasswordLink();
 public static final String portalLink=getPortalLink();


 public static String getResetPasswordLink(){

     try {
      Properties prop = new Properties(); 
      //load a properties file
      prop.load(Constants.class.getClassLoader()
.getResourceAsStream("application.properties"));
               //get the property value and print it out
             return prop.getProperty("password.url");
     } catch (IOException ex) {
      ex.printStackTrace();
      return null;
        }
  
 }
 
 public static String getPortalLink(){

     try {
      Properties prop = new Properties(); 
      //load a properties file
      prop.load(Constants.class.getClassLoader()
.getResourceAsStream("application.properties"));
               //get the property value and print it out
             return prop.getProperty("portal.url");
     } catch (IOException ex) {
      ex.printStackTrace();
      return null;
        }
  
 }
 
}

We can use 
Constants.jsp
Constants.portalLink 

Wednesday, 20 November 2013

How to include external/user defined jar in pom.xml

Step1:There must be apache-maven-3.0.4 in system.

Step2:Check whether  apache-maven-3.0.4 is present.
Go to command prompt
type mvn press enter.

If there is no apache-maven-3.0.4 we get above image output.

Step3:Download apache-maven-3.0.4 place in any drive.
Go to Computer-->Properties-->Environmental Variable-->path
append path D:\apache-maven-3.0.4\bin.

Go to command prompt
type mvn press enter.

If we have apache-maven-3.0.4 we get above image output. 

Step4:Place all jars in one folder D:\userJars

Step5:open command prompt

mvn install:install-file -Dfile= D:\userJars\sqljdbc4.jar -D groupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
mvn install:install-file -Dfile= D:\userJars\flex-messaging-common.jar -DgroupId=flex -DartifactId=flex-messaging-common -Dversion=0.1.0 -Dpackaging=jar

add all jars in same manner.

Step6:Run it.

Now all jars added to maven in .m2 repository.

Friday, 8 November 2013

Restfull WebService with Java(JDBC).

Representational State Transfer (REST).

Java API for RESTful Web Services (JAX-RS), is a set if APIs to developer REST service. JAX-RS is part of the Java EE6, and make developers to develop REST web application easily.
Both Jersey and RESTEasy, popular JAX-RS implementation. 


Java API for XML Web Services (JAX-WS) is a set of APIs for creating web services in XML format (SOAP). JAX-WS provides many annotation to simplify the development and deployment for both web service clients and web service providers (endpoints). 

RESTful web services are built to work best on the Web.

The following principles encourage RESTful applications to be simple, lightweight, and fast:

Resource identification through URI: A RESTful web service exposes a set of resources that identify the targets of the interaction with its clients. Resources are identified by URIs, which provide a global addressing space for resource and service discovery. 



Creating a RESTful Root Resource Class

Root resource classes are POJOs that are either annotated with @Path or have at least one method annotated with @Path or a request method designator, such as @GET, @PUT, @POST, or @DELETE. Resource methods are methods of a resource class annotated with a request method designator. This section explains how to use JAX-RS to annotate Java classes to create RESTful web services.

import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.Path;

// The Java class will be hosted at the URI path "/helloworld"
@Path("/helloworld")
public class HelloWorldResource {
    
    // The Java method will process HTTP GET requests
    @GET
    // The Java method will produce content identified by the MIME Media
    // type "text/plain"
    @Produces("text/plain")
    public String getClichedMessage() {
        // Return some cliched textual content
        return "Hello World";
    }
}

  • The @Path annotation’s value is a relative URI path. In the preceding example, the Java class will be hosted at the URI path /helloworld. This is an extremely simple use of the @Path annotation, with a static URI path. Variables can be embedded in the URIs. URI path templates are URIs with variables embedded within the URI syntax.
  • The @GET annotation is a request method designator, along with @POST, @PUT, @DELETE, and @HEAD, defined by JAX-RS and corresponding to the similarly named HTTP methods. In the example, the annotated Java method will process HTTP GET requests. The behavior of a resource is determined by the HTTP method to which the resource is responding.
  • The @Produces annotation is used to specify the MIME media types a resource can produce and send back to the client. In this example, the Java method will produce representations identified by the MIME media type "text/plain".
  • The @Consumes annotation is used to specify the MIME media types a resource can consume that were sent by the client. The example could be modified to set the message returned by the 

getClichedMessage method, as shown in this code example:

@POST
@Consumes("text/plain")
public void postClichedMessage(String message) {
    // Store the message
}

The @Path Annotation and URI Path Templates

URI path templates are URIs with variables embedded within the URI syntax. These variables are substituted at runtime in order for a resource to respond to a request based on the substituted URI. Variables are denoted by braces ({ and }). For example, look at the following @Path annotation:
 
@Path("/users/{username}")
public class UserResource {

    @GET
    @Produces("text/xml")
    public String getUser(@PathParam("username") String userName) {
        ...
    }
}

Here is the Sample Application where Username
 and password are captured through JQUERY and when button is clicked throught AJAX calling Rest calls.
Which returns result in JSON



 index.html
<!DOCTYPE html>
<head>
<title>SIMS MOBILE APPS</title>
 <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
 <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"> 
</script>

<style>
body,ul,section,header, nav, h1, li {
 display: block;
 margin: 0;
 padding: 0; 
}
body {
 background: #f6f5de;
 color: #100;
 font: 100%/1.4 Helvetica, Arial, sans-serif; 
}
header {
 background: #4b8fcf;
 color: #dedcb9;
 padding: 0.5em 0;
   padding:0;
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
    z-index:2;
}
  #logo
{
    float:left;
     }
#headertitle
{
 float:left;
   font-size:12px;
   font-weight:bold;
   padding-left:10px;
     }
#logout1
{
    float:right;
 }
footer {
  text-align: center;
    background: #4b8fcf;
 color: #dedcb9;
    position: fixed;
 bottom: 0;
 left: 0;
 width: 100%;
 height:40px;
    bottom:0; left:0;
}
#serverlogo
{
    float:left;
  }
#status
{    float:left;
     font-size:12px;
   font-weight:bold;
   padding-left:10px;
    }
#technobrainlogo
{
    float:right;
   }
       
section {
 padding: 3.3em 0;
}
/*Scrollable Regions Pages*/
.scrollable header {
 position: static; 
}
.scrollable section {
 padding-top: 0;
 height: 500px;
 overflow: scroll;
}
form{
 text-align:center;
 background-color: rgba(250,250,250,0.5);


    box-shadow: 2px 2px 5px 10px rgba(0, 0, 0, 0.2), 
   inset 0px 1px 0px 0px rgba(250, 250, 500, 0.5);
    border: 15px solid rgba(0, 0, 0, 0.3);
    background-color: #f6f5de;
}
#btnLogin{
height:40px;
width:100px;
background-color: #60a2df;
}
input:required{
 background: #fff url(red_asterisk.png) no-repeat 100% center;
}

#wrapper {
    position:absolute;
    z-index:1;
    top:80px; bottom:70px; left:0;
    width:100%;
    overflow:auto;
}
#main-content {
    position:absolute;
    z-index:1;
    width:100%;
    padding:0;
}
</style>
</head>
<body>
<header style="vertical-align:text-top;">
<img id="logo" src="headerlogo.png"/>
<p id="headertitle" > Sales Inventory and Management</p>
</header>

<section>
<div id="wrapper">
    <div id="main-content">   
 
 <form action="#" method="post" id="loginform">
 <div> <p style="font-weight:bold;text-align:center;">Login</p></div>
 <span >Username  
<input type="text" id="username" required  placeholder="Username"  
         autofocus /></span><br/><br/>
 <span>Password <input type="password"  placeholder="Password"  
        id="password" onkeypress="return runScript(event)"  required />
 </span></br></br>
  <label id="requiredError" style="font-weight:bold;"></label><br />
  <input type="button" id="btnLogin" value="Log In" />
 <a href="CNU.html">Create New User</a> 
   
  </form><!-- form -->

        </div>
        </div>
  </section><!-- content -->


<footer class="footer">

<img src="server.png" id="serverlogo"/>
<p id="status">Server Status</p>
<div><img src="Logo_transp.png" id="technobrainlogo" style="padding-right:5px;"/>
</div>
</footer>

</body>
</html>
<script type="text/javascript" language="javascript">
$(document).ready(function() {

var data= '';

$("#btnLogin").click(function() {

var USER_NAME = $('#username').val();
var PASSWORD = $('#password').val();
if(USER_NAME =='' && PASSWORD =='')
{
var div = document.getElementById("requiredError");
               div.innerHTML = "Warning:Please Enter All Fields";
               div.style.color = "red";

}else if(USER_NAME =='' )
{
 var div = document.getElementById("requiredError");
               div.innerHTML = "Warning:Please Enter Username";
               div.style.color = "red";
}else if(PASSWORD =='')
{
 var div = document.getElementById("requiredError");
               div.innerHTML = "Warning:Please Enter password";
               div.style.color = "red";
}else if(USER_NAME =='' && PASSWORD =='' ){
 var div = document.getElementById("requiredError");
               div.innerHTML = "Warning:Enter username or password is incorrect";
               div.style.color = "red";
      }
      else{
$.ajax({
  type: "GET", 
  url: "http://192.0.0.1:8080/RESTfulExample/users/getAuthUser?
callback=success&USER_NAME="+USER_NAME+"&PASSWORD="+PASSWORD, 
  dataType: 'jsonp', 
  crossDomain: true,
  cache: false, 
 success: success
    }); 
 }
});


});


function success(response){ 
//alert(response);
var obj = jQuery.parseJSON(response);
//alert( obj.Customer);
//alert( obj.License);

if (obj.Customer == "False" ){
alert("Access Denied,User tried to access with wrong input");
}else if(obj.expiry!="False"){
alert("Your License has been expired.");
}
else if(obj.status=="Deactivated" && obj.Customer != "False" && 
obj.License != "False" ){
alert("Your account has been deactivated please consult Admin");
}
else if(obj.Customer != "False" && obj.status=="Deactivated"  &&
 obj.License == "False" && obj.uuid == "False"){

alert("Please wait till the licence is generated");

}else if(obj.Customer != "False" && obj.status != "Deactivated" &&
 obj.License != "False" && obj.uuid == "False"){
var query = obj.License;
var query1= obj.Customer;
var firstPart = "HomePage.html?License="+query+"&Customer="+query1;
window.location.href = firstPart;
}
else if(obj.uuid != "False"){
window.location.href="MenuPage.html";
}

}
</script>

 
//CreateNewUser method calls
String DBase_URL = 
"jdbc:sqlserver://192.0.0.1\\testing;database=SAMPLE;integratedSecurity=false";
//userlogin
@GET
@Path("/getAuthUser")
public String getAuthUser
(@Context HttpServletRequest request,@Context HttpServletResponse response) 
throws Exception {
 String callBackJavaScripMethodName  =  request.getParameter("callback"); 
 String USER_NAME= request.getParameter("USER_NAME"); 
 String PASSWORD= request.getParameter("PASSWORD");
 Connection conn = null;
 String Customermsg="False";
 String Licencemsg="False";
 String Uuidmsg="False";
 String status="Deactivated";
 String expiry="False";
 Date todayDate= new Date();
 Date dbDate = null;
 Long cid=new Long(0);
 PreparedStatement stmt = null;
 try{
 Class.forName(JDBC_DRIVER);
 conn = DriverManager.getConnection(DBase_URL,USER,PASS);
 String sql =  
"select * from CUSTOMER where USER_NAME='"+USER_NAME+"' and PASSWORD='
"+PASSWORD+"'" ;
 stmt = conn.prepareStatement(sql);
 ResultSet res=stmt.executeQuery();
 List<Customer> list = new ArrayList<Customer>(); 
 while (res.next()) {
 Customer cust=new Customer();
 cid=res.getLong("CUSTOMER_ID");
 cust.setCustomerId(cid);
 Uuidmsg=res.getString("UUID");
 status=res.getString("STATUS");
 cust.setUuid(Uuidmsg);
 list.add(cust);
}
if(list.size()==1){
 Customermsg=cid.toString();
 if(Uuidmsg==null || Uuidmsg.length()<16)
 Uuidmsg="False";
}
 Class.forName(JDBC_DRIVER);
 conn = DriverManager.getConnection(DBase_URL,USER,PASS);
 String sql1 = "select * from LICENSE_DETAILS where CUSTOMER_ID='"+cid+"'" ;
 stmt = conn.prepareStatement(sql1);
 ResultSet res1=stmt.executeQuery();
 List<LicenseDetails> list1 = new ArrayList<LicenseDetails>(); 
 while (res1.next()) {
   LicenseDetails cust=new LicenseDetails();
   Licencemsg=res1.getString("LICENSE_NO");
   dbDate=res1.getDate("EXPIRY_DATE");
   cust.setLicenseNo(Licencemsg);
   list1.add(cust);
}
if(list1.size()==1){
  Calendar cal = Calendar.getInstance();
  cal.setTimeInMillis(dbDate.getTime());
  if(cal.getTime().compareTo(todayDate)<0){
  expiry = "Expired";
}
}

Map<String,String> map = new HashMap<String, String>();
map.put("Customer",Customermsg);
map.put("License", Licencemsg);
map.put("uuid", Uuidmsg);
map.put("status",status);
map.put("expiry", expiry);
String jsonString = new Gsn().toJson(map);
String jsonPoutput = callBackJavaScripMethodName + "(\'"+jsonString+"\')";
response.setContentType("text/javascript");
return jsonPoutput;
}catch (Exception e) {
e.printStackTrace();
return null;
}finally{
try{
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}catch(SQLException se2){
      se2.printStackTrace();
}
} 
} 

Thursday, 17 October 2013

Street view maps in INDIA-Wonobo.com

Some of the impressive features of Wonobo's main street view include a map on the left side and the street view on the right or you can have a full-screen street view and keep the map as a small box at the bottom. And you can click or drag on the street view to go down a street. It also offers you to create a pictorial storylines and guides, for example you could create a 'Sachin Tendulkar guide' that shows everything from the nursing home he was born in to the house he lives in now. The website also brings you articles relating to the city once you select it.



Previously the company created map content for others such as Navteq, Nokia and Bing, and was involved recently in creating digital maps of Dubai, Mecca and Medina.


As of now Wonobo street view is being launched for 12 cities— Mumbai, Delhi, Bangalore, Chennai, Hyderabad, Ahmedabad, Surat, Jaipur, Costal Goa, Kolkata, Agra, Pune. The remaining 42 cities will be launched over the following weeks.


Wonobo is also working with the Indian tourism department to showcase heritage sites, something that Google is also now doing, though it is yet to get permissions for wider street views.

Monday, 14 October 2013

Awesome Innovations From Google in 15 years.

1 Android

Google has left its mark in the Smartphone world as 80 percent of the Smartphones today are powered by the company’s Android Operating System. Even though Android is not an original product of Google as it acquired the company that made the OS, Google treated the OS as its own by adding its innovative touch to the software. Initially Android was meant to serve as an OS for digital cameras, but Google turned it into mobile software much before Apple came out with its iPhone.
Today, Android OS with its various versions that are named after a dessert or sweetener, is one of the most popular softwares to be used because of its easy interface, wide range of free apps and its open source nature that gives users option to update their Android versions on their devices for free. Because of this, Android is popularly adopted as OS on mobile devices from companies like Samsung, Huawei, ZTE, Micromax and Xiaomi.


2 Internet balloons

Google recently launched its Project Loon, where it sent out air balloons strapped with internet antennas into the stratosphere at a height of 20km. This project was launched to connect the developing countries where internet connection is weak or almost nil. Through this, Google aims to provide 3G speed via internet balloons which covers an area of 1,256 sq m each.

3 Chromebooks

The internet company has set its foot in the electronic world yet again with laptops called Chromebooks. These laptops are meant for the ‘connected generation’ and runs on Goolge’s Chrome OS and does not support any applications made for Windows and Mac operating systems. Chromebooks have a built-in media player and internet browser. The price for Chromebooks starts at $250, which is cheaper than most tablets and laptops

 4 Google driver-less cars

The automobile world is said be greeted by the next big thing in the form of Driverless cars, Google’s proud innovative venture. This started as an idea from Google’s X Lab and these driverless cars are currently being tested by the company in Nevada, Florida and California in the U.S. These cars are still in testing phase and there are no plans yet to commercialize them but reports say that Google may soon roll out unmanned Robo-Taxi to ferry people.

 

5 Moto X’s voice recognition

Google’s Motorola division came up with Moto X Smartphone that consists of X8 mobile chip which helps give an enhanced user experience. This chip-set is made up of a 1.7GHz dual-core CPU and a quad-core Adreno GPU. The thing that sets this chip apart is its natural language processor, which enables the phone to understand what the user means and contextual awareness processor, which helps the device to know when to turn itself to silent more or which app to open when the phone is held in a certain way. This makes the Moto X to be always alert and even when it’s sleeping if a user gives a voice command like “Okay Google”; the phone wakes up and performs the task

 6 Google Street View

In 2007, Google started the Street View project and over the years, the project has been intercepted with several innovative features that set it apart from its competitors. Google street view option comes along with Google maps, and when selected it provides a panoramic, 360 degree street view imagery of various places around the world. Street view also comes in a 3D version. Using street view, users can see the photos from around the world right from their desktops, mobile devices and also can access it on Nintendo Wii U 
 

 7 Google Fiber

Google Fiber is an internet service which was launched in 2011 and provides a data packet speed of 1GB per second. This service was first rolled out in Kansas and then to Missouri, Texas and Utah in the U.S. Google Fiber comes out in different variants. The basic version costs $70 and has 1TB cloud storage while the subscription with TV service offers 1TB data on Google drive, 2TB digital recording and a free Nexus 7 tablet. There is also a free internet offer which the company provides where users get 5Mbps speed but costs about $25 for annual subscription. 

 8 Google Glass

Google Glass is a real-time product right out of a science fiction story. In 2012, Google unveiled its first wearable device that comes with many features. The gadget can be used as an extension of Android Smartphones and tablets and is used to capture photos and videos from a wearer’s perception. It also supports phone calls, and user can check out maps, read emails and text messages and perform various other tasks via voice commands 

 9 Smartwatch

To compete with other electronics company manufacturers, Google is also stepping up the game by exploring its potential in designing Smartwatches as it recently acquired WIMM Labs, an expert in wearable technology. Google Smartwatch is expected to launch in 2014 and its applications are said to resemble Google Glass. Reports say that Google has unveiled the Smartwatch at three Google meetings held at Mountainview, Manchester and Berlin and global unveiling of this innovative gadget is yet to be seen. 

 10 Password alternatives

Over the last few years, Google has improved its efforts to kill passwords forever. Announcing its support to Fast Identity Online Alliance (FIDO), the company is working on novel means to verify user’s identity when they access their online accounts. Motorola is mixing science with health and is exploring the application of Proteus Digital Health pill, which is has a unique ECG trace that can be used to identify users via external devices. Dennis Woodside, CEO of Google’s Motorola unit also spoke about flexible electronic circuits that can be used as unique passwords by embedding them into people’s skin