Google

Google unveils new, slicker, faster iPhone-specific interface

Tagged:  

Over at last100.com they have posted information on the new Google interface for the iPhone. The interface looks very slick and is apparently very fast (not being a lucky iPhone owner I can't test it out, but if any body wants to send me one let me know).

Below is an excerpt from the story.

Vic Gundotra, a vice president of engineering at Google, told CNet that — as a result of lots of people getting iPhones for Christmas presents — the number of queries on Google search from iPhones surpassed the number of queries from Symbian-based phones for the first time.

Think about it. Symbian is the market leader, used on phones from Nokia (the world’s No. 1 handset manufacturer), Motorola, Samsung, and Sony Ericsson, among others. The iPhone’s user base is comparatively teeny-tiny since the phone’s introduction last June.

Of course the “Christmas crossover”, as Google calls it, lasted only a few days, but as CNet rightfully notes,“It shows the impact the iPhone is having on the telecommunications industry and provides a glimpse into its future market potential on the Web.”

“It’s about usage, not just units,” Gundotra said in an interview with CNet. “The data proves that people are using the browser on the iPhone.”

igoogleBy providing a quicker, slicker user interface, more customization, iGoogle gadget integration, and more speed for all apps, Google is acknowledging the iPhone’s rosy future. iGoogle on the iPhone can be reached by pointing the phone’s browser at google.com/ig/i.

The standard mobile version of Google, made available just over a month ago, is still available at google.com/m, but it’s more limited and is available only in the U.S. It brought together a suite of applications like search, Gmail, Calendar, and Reader into one easy-to-use interface.

With Google for the iPhone, users will get an improved UI optimized for the touch screen, customization of default tabs (easy access to favorite applications), faster Gmail (email automatically show up, no refreshing needed), a speedier Calendar (including a new month view), and iGoogle.

You can see the new interface by pointing you iPhone (or computer browser) to http://www.google.com/ig/i.

You can read the full post by clicking here

Google Chart API - A Real World Example

Tagged:  

You may have seen quite a bit about the new Google Chart API, but you may not have seen a real world example. In the recent release of the Digg Bury Recorder I got some first hand practice in using th Google Chart API. When developing the application I found a few interesting nuances and knowledge of these could help you in using the API in your applications.

One of the most interesting things that I found is that the charting always graphs on a 100x100 basis starting at 0,0. This presented some issues in our application as it needed to graph things like 25 buries and 1200 diggs. The way that I solved this issue was to find the greatest number on each axis and take 100 divided by the greatest number from the points on each axis. Once you get this number you multiply each point it by the appropriate scaler for each axis (although it may not work correctly with points that are less than zero and you would have to adjust the equation to work around that).

The below is an example of an URL that would be used to create a line chart (this is taken directly from the Digg Bury Recorder).

http://chart.apis.google.com/chart?chs=300x225&chd=t:9,16,51,51,51,52,58,59,61,62,63,67,69,69,69,72,74,74,89,93,96,98,100,100|4,8,12,16,20,25,29,33,37,41,45,50,54,58,62,66,70,75,79,83,87,91,95,100&cht=lxy&chxt=x,y&chxr=0,0,155|1,0,24

The parts of this URL that I would like to point out are below:

  • chxr=0,0,155|1,0,24 - This builds the markers of the graph (in our application I used the greatest value for each axis)
  • &cht=lxy - This specifies an X, Y line chart that uses actual points (if you look at the Google Chart API documentation you will see that most examples use helloworld as the points, as each letter has a numeric value, but I prefer to just pass in numbers)
  • chd=t:9,16,51,51,51,52,58,59,61,62,63,67,69,69,69,72,74,74,89,93,96,98,100,100|4,8,12,16,20,25,29,33,37,41,45,50,54,58,62,66,70,75,79,83,87,91,95,100 

    - This is a list of all the points (scaled as I mentioned before). It is important to note that a | is used to separate each axis.

The above Google Chart API URL will result in the below graph.

So now that you've seen my real world example you can check out the official Google Chart API documentation here.

If you make any cool applications using the Google Chart API let us know about it in the comments or you can blog about it on this blog when you sign up for a free account. If your post is considered interesting by the administrators of this site it will appear on the home page, otherwise it will be on your personal blog and under the blogs link.

Voices That Matter: GWT - Conversation with Josh Bloch

Video of the "Conversation with Josh Bloch" from Pearson Education's Voices That Matter: Google Web Toolkit 2007 conference.

Josh Bloch is the Chief Java Architect at Google. Previously he was a Distinguished Engineer at Sun Microsystems and a Senior Systems Designer at Transarc. He led the design and implementation of numerous Java platform features, including the JDK 5.0 language enhancements and the Java Collections Framework. He holds a Ph.D. in Computer Science from Carnegie-Mellon University and a B.S. in Computer Science from Columbia University.

Check out more session videos and presentation slides from the conference.

Developing Google Web Toolkit Applications with Netbeans 6

Tagged:  

With the recent release of Netbeans 6 there is a lot of interesting things happening in the Java world. One of the best toolkits for making Ajax applications for Java developers is the Google Web Toolkit. In case you have never used the Google Web Toolkit (a.k.a GWT) it makes it much easier for Java programmers to create Ajax applications as you can code JavaScript in Java. Netbeans 6 now has a GWT plug-in to help you develop your GWT based applications in NetBeans combining the power of these great tools.

Below is an excerpt that will get you started in your development.

Although GWT is not supported in NetBeans 6 out of the box, you can download this GWT plug-in and start developing GWT-based applications in NetBeans.

The first step is to install the plug-in using the Plug-in manager. Go to the "Tools | Plugins" menu action, switch to the "Downloaded" tab and locate the plug-in on your disk drive. You don't even have to restart your IDE - GWT support is instantly available for you!

The plug-in is seamlessly integrated into NetBeans IDE. That means that when you create a new web application GWT is shown as one of the available frameworks in the last step of the New project wizard. Here you can specify the GWT installation folder and choose the main entry point class of your GWT module.

newwebapp.jpg

You can use the plug-in both if you start from scratch or if you want to work on an existing GWT application. So if you used a different IDE than NetBeans before, it is easy to switch the GWT application to NetBeans. You just point the wizard to your existing GWT application and create a new project from existing sources.

Once you get the project created you can run the application simply by hitting the Run button. There are two options – you can either use the default Run action which deploys the application to the application server and opens your default web browser. The other option is to run GWT in hosted mode and then the GWT development shell is opened and you can see your application inside of it.

run.jpg

Debugging is also supported, so you can just run the Debug action and then the runtime is ran in debug mode. You can simply add breakpoints, step into, step out, etc. as you would expect in a regular web application.

debugging.jpg

NetBeans already provides lots of tooling out of the box that you can take advantage of, like a powerful XML editor, HTML editor and of course a Java editor with code completion and quick fixes. NetBeans 6 made huge strides in improving the editing experience and it shows when developing GWT applications, too. All GWT APIs are available for you including javadoc documentation, because the GWT jars get automatically added into the project during it's creation.

To learn more about GWT support in NetBeans, the project homepage and screencast can help you get started. Sang Shin, a member of the Sun technology evangelism team, also created a free course for GWT and NetBeans, so you can learn from his examples and do the hands-on lab.

The plug-in was developed as an open source project so we encourage developers to join the project and contribute. There are many ways you can contribute, even submitting an issue or request for enhancement counts.

The future roadmap contains exciting features such as refactoring for GWT and GWT-specific quick fixes in the editor which will make developing GWT code even more comfortable. We are always looking for feedback, so if you try out the project let the developers know what you think.

Click here to read the full post.

Now that you know about these great tools get to coding some great Ajax applications in Java using the Google Web Toolkit!

Google Ajax Feed API + Flickr Photo Feed + Mootools Image Reflection

Introduction
So this all started because I decided to play around with the Google Ajax Feed API, integrate it with the Flickr public photo feed, and add a Mootools Image Reflection script in to the mix to spice things up a bit.

Let's start with the Google Ajax Feed API and what it offers. With the AJAX Feed API, you can download any public Atom or RSS feed using only JavaScript, so you can easily mash up feeds with your content and other APIs like the Google Maps API. If you haven't had a chance to dig into it, you should. It's relatively simple and straightforward, is very quick to set up, and runs like a champ. First, you'll need to sign your site up for a API Key here.

Now let's take a look at the Flickr Photo Feed. Flickr is one of the biggest online photo management and sharing application in the world. They offer a free full blown API, but for this project I only used their public photo feed.

Finally, the third ingredient in this melting pot is an image reflection script based on the Mootools framework. Image reflection has become much more common in the Web 2.0 design style. This script provides a code based solution to creating reflections as opposed to hand creating them in an image editor like Adobe Photoshop. If you're not sure what I mean by image reflections, stay tuned for a quick and dirty demo.

Google Ajax Feed API
To begin using the Ajax API in a page, you first need to include the javascript code from google's server in your header, passing it your API key:

<script type=\"text/javascript\" src=\"http://www.google.com/jsapi?key=[your api key here]\"></script>

Next, initialize the API by calling

google.load("feeds", "1");

Specify your callback function by calling google.setOnLoadCallback(initialize); where initialize is the name of our callback function.


Finally, let's build the initialize function, to process the Flickr public feed after the API is ready.

function initialize() {      
	// this random number is used to guarantee we aren't getting a cached copy of the feed, which by default is in JSON format
	var randomnumber=Math.floor(Math.random()*1000000);
	
	// the flickr feed url is used to instantiate a new google feed object
	var feed = new google.feeds.Feed("http://api.flickr.com/services/feeds/photos_public.gne?rand="+randomnumber);

	// The container is a DIV that contains all the photos retrieved from Flickr
	// Each time this method is called, we need to erase the previous photos
	// with a little DOM manipulation
	var container = document.getElementById("feed");
	if(container != null){
		container.parentNode.removeChild(container);				
	}
	container = document.createElement("DIV");
	container.id = "feed";
	container.innerHTML = "<p class=\'loading\'>Loading...</p>";
	document.body.appendChild(container);

	// setNumEntries allows us to specify the number of elements Google will return
	// in the feed, the default is 4
	feed.setNumEntries(20);

	// we execute the load method to tell the api to fetch our feed
	// and we pass it our callback function
	feed.load(function(result) {
            if (!result.error) {               
	  // this removes our loading message
	  container.innerHTML = "";

	  // we loop through our result set (a JSON object)
              for (var i = 0; i < result.feed.entries.length; i++) {
	       // for each entry, we create a div, assign it a css class name,
	       // create a hyperlink back to the Flickr page contain the fullsize picture
	       // and create an image node for our thumnail
                   var entry = result.feed.entries[i];			
                   var div = document.createElement("div");
                   div.className = "imageDIV";			
                   var linkNode = document.createElement("a");
                   linkNode.href = entry.link;
                   linkNode.target = "_blank";				
                   var imageNode = document.createElement("img");
                   imageNode.id = "image"+i;
	       // parseImgURL is a method I wrote to parse out the thumbnail url from a node in
	       // in the JSON object since that contained other content
                   imageNode.src = parseImgURL(entry.content);
                   imageNode.border = 0;

	       // add the hyperlink to the image	, assign it to the div, and put it on the page
                   linkNode.appendChild(imageNode);		
                   div.appendChild(linkNode);
                   container.appendChild(div);

	       // finally, this one-liner is all we need to activate the reflection
	       // feature on the image we just added to the page. The first parameter
	       // in the add method is the image id, the second parameter is used for options
	       // like the height and opacity of the reflection. 
	       // .8 results in a reflection that is 80% of the height of the original image
                   Reflection.add('image'+i, {height:.8});
              }


            }
          });
}

Flickr Photo Feed
More information on the Flickr API can be found on their website.
For this project, I chose to only use their public feed (which doesn't require an API key).

Mootools Image Reflection
This script works in all browsers supporting the canvas tag: Firefox since version 1.5, Camino, Opera since version 9 and Safari since version 1.3. It also works in Internet Explorer 5.5 and more recent by using an alternative drawing technique.

Take a look at the Demo

Sources
Google Ajax Feed API: http://code.google.com/apis/ajaxfeeds/
Flickr Photo Feed: http://www.flickr.com/services/feeds/docs/photos_public/
Mootools Image Reflection Script: http://www.digitalia.be/software/reflectionjs-for-mootools

Yahoo and Google to Turn E-Mail Into a Social Network - (Inbox 2.0?)

Tagged:  

Google and Yahoo reportedly have a similar idea to compete with MySpace and Facebook. The idea is to turn your email account into a social network. This seams to be a great idea since people go into their email to connect to other people.

Apparently they will be combining their email along with their personal pages to create the social network. Since e-mail already has contacts that would act as friends and the personal pages would have an added public version to create the effect of a home page (like those in MySpace or Facebook) it seems to be a perfect match.

The following is an excerpt from an article on Bits.

Web-based e-mail systems already contain much of what Facebook calls the social graph — the connections between people. That’s why the social networks offer to import the e-mail address books of new users to jump-start their list of friends. Yahoo and Google realize that they have this information and can use it to build their own services that connect people to their contacts.

I don’t have a lot of detail from Google, but I’ve heard from several executives that this is their plan. When I talked recently with Joe Kraus, who runs Google’s OpenSocial project, he said: “We believe there are opportunities with iGoogle to make it more social.” And when I pressed him about the relationship between the social aspects of iGoogle and Gmail versus Orkut or some other social network, he said, “It is much easier to extend an existing habit than to create a brand.”

Brad Garlinghouse
Brad Garlinghouse (Photo: Neal Hamberg/Bloomberg News)

Brad Garlinghouse, who runs the communication and community products for Yahoo, was a lot more forthcoming. He didn’t-have dates or specific product details either. But he did say that Yahoo was working on what he called “Inbox 2.0.”

This has several features. First, the e-mail service is made more personal because it displays messages more prominently from people who are more important to you. Yahoo is testing a method that can automatically determine the strength of your relationship to someone by how often you exchange e-mail and instant messages with him or her.

“The inbox you have today is based on what people send you, not what you want to see,” Mr. Garlinghouse said. “We can say, here are the messages from the people you care about most.

Yahoo Mail will also be extended to display other information about your friends as well. This can be a link to a profile page, and also what Yahoo calls “vitality” –- updated information much like the news feed on Facebook. There could also be simple features that are common on social networks, like displaying a list of friends whose birthdays are coming up.

“The exciting part is that a lot of this information already exists on our network, but it’s dormant,” Mr. Garlinghouse said.

What Yahoo is missing in this vision is a personal profile, where users express their interests and personality to others. Yahoo, of course, has had many different takes on this over the years: its member directory, Geocities, Yahoo 360. It recently started Yahoo Mash. But none of these is quite right, Mr. Garlinghouse said. Mash is simply an experiment, not a product being readied for mass promotion.

There will be some sort of profile system attached to Inbox 2.0, he said. For people who use a lot of Yahoo services, this profile could be quite rich even at the beginning, as it can draw on activity on Yahoo Music, Yahoo Shopping and so on.

“If I get an e-mail from Saul Hansell, I should be able to click on his name and see his profile,” Mr. Garlinghouse said. “The profile page is where you can expose what you want people to know about you.

In this vision, people have two pages: a profile they show to others and a personal page on which they see information from their friends as well as anything else they want, like weather or headlines. That’s different from MySpace, which combines all this into one page.

Already My Yahoo and iGoogle are increasingly collections of widgets that hold content and applications from multiple sources, some of them already social, like e-mail and feeds from social sites like Flickr. But much more is coming.

This approach has a lot of potential and a few pitfalls. To start with, everyone who joins Facebook understands that what they do on the site is about sharing information with friends and sometimes strangers. People who use Yahoo Mail, or just exchange messages with someone using a Yahoo Mail account, have no such expectations. So the company will have to be very careful in how it explains what it is doing and ask for permission in the right places.

“This isn’t a separate product,” Mr. Garlinghouse said. “This is an integration that has to be seamless to the user.”

Read the full article here.

I could see the Yahoo social network incorporating Flickr, del.icio.us and Yahoo Instant Messanger. While Google could perhaps incorporate YouTube. Depending on how much integration happens with other services owned by the companies could depend on exactly how quickly the networks could become huge. If each company where to really integrate all of the social networking related services that they own their would be a huge danger of making a network that has no targeted audience. It will be interesting to see what they create.

Since both companies already have so many users of their services the social networks would instantly have a number that would make them among the largest. It will be interesting to see how well the integration of the various services will be. If it is done well these could quickly become to the top two social networks.

Google Maps Version 1.7.1.4 Released

Tagged:  

Here's what this new release of Google Maps brings to the table: 

  • Route Mapping (Planning)
  • Turns displayed on your map
  • You-Are-Here GPS functionality
  • Contacts integration for Windows Mobile Devices

Also remember Google Maps has other cool features like:

Real-time traffic conditions
See where the congestion is, and estimate delays in over 30 major US metropolitan areas.

Favorite places and routes
Save time (and avoid sore thumbs) by keeping a list of residential or business locations, and driving routes.

Insta-KB-o-meter
Monitor your data consumption in real-time — just look to the top right portion of your phone screen while using Google Maps.

Enhanced business info
After selecting a particular business, select the "Details" tab for hours of operation, hotel amenities, and more.

And for those of you with BlackBerrys, you can use Google Maps to!

You can download this release by directing your mobile device to http://www.google.com/gmm

 

Syndicate content