Free as Freedom, not Free as Free Pizza!” />


Udruženje Informatičara BiH - Cross-platform and Portable Development With PHP, LAMP/WAMP development, AJAX and Javascript, ASP, dot NET, C sharp, C++, C, VB, Oracle, tutorials and tips...
Free as Freedom, not Free as Free Pizza!


Add to Google

Monday, December 18, 2006

The Library Project: Two years in

It was two years ago today that we first announced the Library Project and our first five library partners (Harvard University, the University of Michigan, the New York Public Library, Oxford University, and Stanford University). Together, book by book, we're digitizing these libraries' rich collections and making them discoverable and searchable online. We've already heard countless stories from students, researchers, and readers whose searches have led them to books from the vast collections of our library partners. One of our favorites is from Jan Perrier, a librarian in suburban New Jersey. She wrote:
A college student was home for the weekend and was here to do research for a paper on juvenile delinquency in London in the mid-19th century. Roxbury public library is a typical suburban library -- we have lots of cookbooks, car repair manuals, Danielle Steele books, James Patterson books -- we don't have any books at all on juvenile delinquency in London in the mid-19th century... We plugged a few key search words [into Google Book Search.] Within a few seconds we had a list of books; she found [a public domain] book that was held at Harvard University Library, and within minutes, was actually reading the book online.
(You can also see Jan tell her story in Google Video).

What else has happened? Well, our group of five initial partners has grown to nine, as we've since announced partnerships with four additional libraries: the University of California, the University of Wisconsin-Madison, the Complutense University of Madrid, and the University of Virginia. We are honored to work with this amazing collection of partners and look forward to hearing more stories like the one from Jan. [more]

Ad Quality and Performance -- new in the Help Center

Call it human nature. Lots of advertisers explore the Help Center extensively when they first start with AdWords, just to get a handle on the basics, but rarely make a return visit after that. But what about the helpful information that has added since that last visit, say, oh, six months ago?

Here's a good example: in the past few months a lot of new content concerning the key concept of Quality Score has been added to the Help Center.

In fact, if you were to visit today, you'd see a whole new section called Ad Quality and Performance. Within that section, there are four major subject areas, as noted below. Within each of those broad areas there are many detailed supporting topics. Here's an overview of what you'll find:

  • The Quality and Performance Overview section includes 11 topics meant to define quality and performance, and to help understand AdWords system behaviors.

  • Within the Quality and Performance Factors section, you'll find links to more than 25 topics on Quality Score, quality-based minimum bids, landing page quality, ad position, and clickthrough rate (CTR).

  • The Troubleshooting section offers more than 15 helpful links that can assist you in troubleshooting your keywords, ads, landing pages and minimum bids.

  • Lastly, the Improving Ad Performance section offers 20 or so topics on choosing successful keywords, creating targeted ads, and optimizing y our account.
Yep, that's a lot of information. We hope you'll spend some quality time (pun intended!) in the Help Center one day soon -- and just explore. You'll almost certainly find some information you haven't seen before, which just might help you improve your advertising effectiveness.


AdWords Trademark Policy (Part 2 of 2)

In part one of the AdWords Trademark Policy series, we reviewed the trademark complaint procedure and also answered some of the common questions asked by trademark owners. Today, we will answer the two most common questions asked by advertisers who would like to use trademarked terms in their ad text or keywords lists. Here they are:

My ad was disapproved per your trademark policy, but I should be able to use the trademarked term "Blue Widgets" in my ad because I actually sell the product Blue Widgets on my website. What gives?

We monitor the use of a trademark because the trademark owner has filed a complaint. For ads targeting the US and Canada, we will review ad text but not keywords. For ads targeting regions outside the US and Canada, we may review both your keyword list and ad text for trademarked terms per the trademark owner's complaint.

If you believe that you are authorized to use the trademark term in question, please contact the trademark owner directly to resolve your dispute. If the trademark owner approves your use of the trademark term, we will need to receive written confirmation directly from the trademark owner in order to authorize your use of the trademark.

I am an official dealer of Blue Widgets and the company said I could use the trademark in my ad text. Are you sure this isn?t a mistake?

As mentioned above, we will not allow the use of a trademark term according to the parameters of the trademark complaint filed by the trademark owner. Therefore, unless the trademark owner specifically grants you permission to use their trademarked term by contacting our Trademark team, we are not able to approve the use of the trademark in your AdWords ads. (Instructions on how a trademark owner can contact our Trademark team can be found in part one of this series.)

We hope this series has helped clarify our trademark policy as it applies to AdWords ads. Please keep in mind that this policy only applies to AdWords ads and not Google search results.


Save even more with Google Checkout

Last month, the Google Checkout team announced that all Checkout sales will be processed for free until the end of 2006. What could be better than free processing? More free processing! Gavin C. from the Checkout team updates us with the latest details:

We have received such a positive response from merchants about free processing with Google Checkout that we decided to extend the offer through the end of 2007. Yep, from now through December 31, 2007, we'll process all your Google Checkout sales for free.

For those of you unfamiliar with the product, Google Checkout is a new checkout option that makes online shopping faster, more convenient and more secure. If you have an online store, customers who visit your site can use Checkout to buy from you using a single username and password. And once they do, you can use Google Checkout to charge their credit cards, process their orders, and deposit funds in your bank account. Google Checkout has many benefits, you can check out all the details here. ;-)

A new Payment History page

If you've glanced at your Payment History page today, you might've noticed that it's been revamped with a whole new look. Don't worry -- all of your previous payment data is still available and our payment process hasn't changed. We've simply updated the layout to make it easier to keep track of the financial activity in your account, and most importantly, help you determine when you can expect your next payment.

You'll now find your earnings and payments divided into two separate columns so you can better distinguish between them. Clicking on any details link will give you more information about the noted Earnings or Payment event. For ex ample, the details link associated with a payment will show you the payment number, amount, date, and depending on your form of payment, the tracking number.

We've also added a Monthly balance column, which displays the running total of your unpaid earnings and credits at the end of each month. If this column shows an amount greater than $100 and you've removed all holds from your account, you'll be issued a payment at the end of the following month. You can see an example in the screenshot above -- since the publisher's unpaid earnings totaled $58.23 at the end of November, a payment will not be issued during December.

Have questions about our payment process and schedule? T he Payments Guide is the place to find answers.


Welcome to the GWT blog

We are excited to finally release Google Web Toolkit to the world today. We are going to use this blog to publish official updates, GWT tips and tricks, and notify the GWT developer community of new releases. The easiest way to be notified of changes to GWT is to subscribe to our Atom feed.

If you are at JavaOne, make sure you come see our tech lead, Bruce Johnson, in his session on GWT tomorrow, May 17, at 12:15 pm in the Moscone Center Gateway 102/103.

And if you haven?t already, download GWT and let us know what you think.

Happy coding!


An assortment of GWT links

We're really happy that so many people have started digging into the Google Web Toolkit! If you're new to GWT, check out Robert Cooper's nice tutorial on getting started with GWT. If you're already a seasoned GWT veteran (it's been out almost 3 weeks, after all :-), then you might find some of these links interesting: And in case you haven't stopped in lately, participation in the the developer forum continues to be phenomenal. If you have questions about GWT, chances are good that someone on the forum can help you. The GWT engineering team is virtually obsessed with reading the forum to see what we're doing right (and wrong) as well as what we can do to make GWT more useful. So, if you have a gripe or a feature request, let us hear about it on the forum. [more]

GWT developer community news

GWT developers have been energetic in the past few weeks. A few examples: Ryan Dewsbury created GWT-powered gpokr, a cool multiplayer no-limit Texas Hold'Em implementation with real-time chat. Our favorite office time-waster is Mark Roth 's GWT Hang Man. Another developer has also started work on a more ambitious photo-sharing site called myNetImages, built with GWT. Check out the GWT Site blog for a nice collection of links and information.

On the widget development front, Robert Hanson's GWT Widget Library now incorporates an impressive array of widgets, including SVG vector graphics, a calculator widget, and an editable label control. The GWT Component Library has also grown quite a bit to include everything from an auto-completion widget to a calendar control.

IDE support for GWT has also improved, thanks to the incredible efforts from IDE developers. JetBrains has released an impressive IntelliJ IDEA GWT Studio plugin with deep GWT compiler integration and JSNI syntax highlighting. And Roumen Strobl from Sun blogged about a nice NetBeans template for GWT.


Happy Holidays, Open Source Developers!

It's the time of year for giving, and thus I have the pleasure of giving you two much-awaited gifts for Google Code's project hosting!

File Downloads - this has been the most-requested feature since we launched project hosting here on Google Code. We knew it would be, but wanted to ship earlier rather than later. We think you'll like what we did... one-click downloads and scriptable uploads, as well as searchable summaries and labels.

Wikis - all projects now have a tightly-integrated wiki appearing under a new Wiki tab. The really cool thing here is that the content is stored in your Subversion repository under the /wiki/ directory. You can edit the pages with your favorite editor and commit them with your favorite Subversion client! Additionally, you can add labels and page summaries to wiki pages for improved searching.

We hope you will enjoy these new features - let us know what you think!

Note: for an example, check out the GWT downloads or the Serf project's status page.

Welcome to the Google AJAX Search API Blog

This is the official blog of the Google AJAX Search API. We are going to use this blog to publish official updates, tips, and workarounds, and announce new releases. The easiest way to be notified of changes is to subscribe to our Atom feed.

If you have any questions in the meantime, head on over to the developer forum. Google engineers will participate in the group along with other AJAX Search API developers to help answer your questions.

If you need any creative inspiration to get started with the API, check out the nice set of sample applications on our web site.


New Feature: Site Restricted Search

We launched the Google AJAX Search API as a Version 0.1 API so that we could take a little bit of time to gather feedback from you. We welcome feedback on the current API as well as suggest features that we could add that would make your lives easier.

One suggestion that we have heard from many of you concerns site restricted searching. You wanted to be able to implement a "Search my site", "Search the web" quickly, easily, and with professional results and styling.

This afternoon, we updated the service to include a handful of new methods, documentation, and samples that should get you pointed in the right direction.

For all searchers, you now have the ability to set a user defined label for a specific searcher. This lets you replace the current system defined label of "Web", "Blog", etc., with a label of your choice e.g., "My Site", "", etc. Since you might want to provide unique styling for this searcher, we also added a new method that allows you to specify a user defined class suffix to wrap the results for any searcher. This is a pretty advanced feature, but for those of you that have a knack for CSS, you will appreciate the cool new things this allows you to do. And yes, our new sample application uses this...

Finally, for site restrictions, the GwebSearch and GblogSearch classes now support a .setSiteRestriction() method that forces search results to be scoped based on the programmed restriction. Our sample application demonstrates the use of this by configuring a web searcher to only return results from Amazon, and by configuring a blog searcher to only return posts from the Live Journal Nintendo DS blog. Check out a sample.


A New Gadget

Yesterday we launched a new gadget for the Google Personalized Homepage that is based on the Google AJAX Search API. Why embed a search gadget on a search homepage, you may ask? Well, it can actually be pretty useful. I have mine configured for just GlocalSearch() scoped to my home town. I use it as a very fast, in-page phone book. (You can add the new gadget directly to your Google homepage.)

In other news, you all asked for a way to clear search results and there are a few samples out there that work hard to do this. We tried to make it a bit easier with a new .clearAllResults() method. Just call this method on your search control whenever you need to clear out old results. We didn't want to clutter the UI with a new button that does this, but if a user clears out the input element and then hits return or clicks the search button, we call this method internally.

And finally, the guys that produced the assorted blue artwork gave me a matching set in green, dark grey, pink, and orange. If you want your search control to use pink artwork, just include gsearch_pink.css, right after you include gsearch.css. The point of this wasn't to promote alternate colors. It was more about demonstrating how to style the search control to fit better in your application. Take a look at Sitesearch.html for an example of the gsearch_green.css. You can also try gsearch_pink.css, gsearch_orange.css, or gsearch_darkgrey.css. [more]

Fix for Key Validation Issue

Given the recent activity on the message board, here's an update on some of the key validation problems that affected people earlier in the week. There were two distinct, but somewhat related issues at hand, both of which have been resolved.

First, people received errors because "GSearchControl" was undefined. This was due to a number of things, such as invalid API keys, API key sharing across different URLs, and typos in the script tag that loaded the API. Previously, these errors would fail silently, but we made a change to respond with a 200 instead of a 400 and also deliver an alert() call with a string indicating that either your key was invalid, that the version you specified was invalid, that the resource (file=uds.js) was invalid, etc.

Second, we made a mistake with the key validator and didn't allow for reasonable alternatives of the hostname (e.g., vs. We've since fixed this issue.

Our mistake was in taking a silent error and turning it into a noisy one, and I apologize for the painful process that many of you experienced. Your ability to react in real time to the changes helped us monitor and fix this in real-time, so we appreciate all the helpful feedback. [more]

New Features, New Sample

We made some changes over the last several days, relating mostly to GlocalSearch, but also impacting GblogSearch.

Previously, GlocalSearch commingled address resolution results with local search results, providing things like "New York, NY 10038" alongside "New York Pretzel" and "New York Cafe." There's now a method for indicating whether you want those address resolution results included. You can set this yourself or expose it to users with the local search configuration UI.
    .setAddressLookupMode(GlocalSearch.ADDRESS_LOOKUP_DISABLED) - disables commingled results

    .setAddressLookupMode(GlocalSearch.ADDRESS_LOOKUP_ENABLED) - enables commingled results, the default
We also adjusted the search behavior when an address clause is present in the query string. For example, a search for "starbucks" will produce search results near the center point associated with the searcher, while a search for "starbucks 93108" or "starbucks in cary, nc" will now produce results near the location in the query string.

There's a new Local Search sample to demonstrate some new concepts and techniques and serve as a simple starting point for location centric apps. If you're running a conference, hotel, community site, etc., this might make a nice little addition to your page.

As suggested in the discussion group, we implemented the ability to sort GblogSearch results by date. This is available for programmatic access as well as through the UI.
    .setResultOrder(GSearch.ORDER_BY_RELEVANCE) - This is the default and indicates that results should be returned in order of their relevance.

    .setResultOrder(GSearch.ORDER_BY_DATE) - This value indicates that results should be returned should be returned in publication date order.
Let us know if you experience any problems as a result of these recent changes, and keep the suggestions coming. [more]

Issue Tracking

We just posted a public issue tracking website for the Google AJAX Search API. This is to make it easier to track our progress on bugs and feature requests. As you encounter issues with the API, you can report them in the developer forum and we'll add reproducible bugs and common feature requests to this list.

The issues include workarounds if applicable, as well as links back to the discussion group threads where the problem has been discussed. We hope you find this helpful -- let us know what you think. [more]

Add Map Search to your site

This week I am speaking on Search APIs at the Search Engine Strategies Conference. Unfortunately, by the time I got around to reading the Hotel and Venue page, I discovered that all the recommended hotels are sold out.

When I look at that page, all I see is text (and of course a sidebar of logos for the sponsors). Where is the map? Why can't I just just search for a nearby hotel directly from this page, or search for nearby restaurants? This happens to me every time I go to a conference, like a few weeks ago when I ended up on the other side of the river from OSCON's conference center.

I called my friends over at O'Reilly and asked them if they would mind if I worked on their OSCON site a little. In the process of tinkering with it, I created a re-usable component, something that could be applied to other conference sites just as easily. The result is a Mapsearch Solution that uses the Google AJAX Search API and Google Maps API. I'm calling it a "solution" because it's a piece of code that you can use as-is, or copy and enhance to suit your needs. Take a look at the mapsearch sample to see how easy it is to add something like this to your site. If you are already using these APIs, you already have a key and know how to include the code. Once you've done that:
  1. Include the new gsmapsearch.js and gsmapsearch.css solution files
  2. Create and style a div element, one for each control
  3. Add a call to GSmapSearchControl(element, address, options?), one for each control. Something like:
      var container = document.getElementById("mapSearchDiv"); new GSmapSearchControl(container, "1236 Lisa Lane, Los Altos CA");
If you are running a conference web site, or a hotel web site, or any sort of travel or community web site, this could be a great feature to add without much effort. And it's something your visitors will appreciate. [more]

A couple UI changes

One thing that's been on our list for a while now is changing the current UI for switching between one search result, more search results, and all search results. The new treatment uses three buttons that let you quickly select one, more, or all search results. Each button has "tool tip" style text that shows up on hover to help everyone learn the meaning of the buttons (note the tool tips are in English, but are in the localization queue).

We're still a v0.1 API and very much a work in progress. So these buttons may change again -- let us know what you think.

Another change you may have noticed is the little "x" next to the default search button that gives users a way to quickly clear results. Hopefully this will make things easier for those who have been writing custom UIs for clearing results.

Like most pieces of the API, you can use CSS if you'd prefer that these buttons not appear in your search control:
     /* turn off the new results selector buttons */     #mySearchControl .gsc-results-selector { display : none; } 
     /* turn off the new clear results button */     #mySearchControl .gsc-clear-button { display : none; } 
On a related note, I'd strongly recommend learning how to develop on Firefox and make use of DOM Inspector. With it you can "inspect" any page, and then "inspect" a node (like a button or piece of text). DOM Inspector will allow you to see where the element sits in the page's DOM Tree, what CSS rules apply to the element, the computed style for the element, etc. [more]

Submit your sample apps

We're looking for sample web apps that make use of the Google AJAX Search API. If you're interested in submitting your site, please send an email to with the following info:
  • your name
  • name of the web app
  • its URL
  • URL for a 129x110 JPG or PNG thumbnail
  • list of APIs used
  • suggested description
For example:
     Mark L.     Official Google Map Search Gadget     Google AJAX Search API, Google Maps API, Google Gadgets API     Gadget for the Google homepage that let's you run map searches        without leaving the page. 
We'll post a handful of these submissions that represent interesting and unique applications of the API to our now empty community samples page.

(We may tweak the description a bit and we'll copy the thumbnail to host it on our servers.)

And if you haven't already, be sure to check out the usage samples our team has created. [more]

More results link, new Video Bar features

This afternoon we made two small updates to the service.

More results link

For those of you using the GSearchControl, you will notice a new link, "More results »" underneath a collection of search results. This link will take your users to the appropriate property (web search, video search, etc.) with their current query where they can do deeper research. The link uses typical AJAX Search API constructs. You control the link target just like you do for your search result links by using the setLinkTarget method. You can change its style or disable it using CSS. If you do not want this link visible on this site, you can use this snippet of CSS (after including gsearch.css) to turn it off.
 /* disable More results >> link under a bundle of results */ div.gsc-trailing-more-results { display : none; } 

Video Bar Features

The Video Bar solution has been enhanced to support an "auto execute list." You can now supply a video bar with a list of search expressions and it will randomly, or sequentially, cycle through your list and update itself. You control the list, the cycle time, and the order with simple options. The instructions page walks you through this simple process. Note: the right hand video bar is programmed to use this new feature. As always, please continue to share your ideas and feedback with us. [more]

API Version 8 Sandbox ?Sneak Peek? Release

We are happy to announce that a ?sneak peak? of version 8 (V8) is now available in the AdWords API Sandbox, and documentation is available in the Developer?s Guide. In order to view the V8 details, simply visit the Developer?s Guide and click on the ?V8? link in the upper right-hand corner of the screen.

We plan to launch V8 in early Q1. Until then, please feel free to test its new features in the Sandbox.

-- Jon Diorio, Product Marketing

FIXED: AdWords API Center Mislabeling Bug

We have corrected the AdWords API Center mislabeling bug that we reported on November 3.

We apologize for any inconvenience that this may have caused you, and thank you for your patience.

-- Jon Diorio, Product Marketing

FIXED: October 29 Stats Retrieval Bug

The October 29 stats retrieval bug that we reported in November has been fixed.

We apologize for any inconvenience that this may have caused you, and thank you for your patience.

-- Jon Diorio, Product Marketing

Should You Be a First Adopter of Second Life?

We are not blind to the appeal of Second Life: Build a virtual life that is more interesting and entertaining than reality. But three words keep us from enjoying this too much. No matter how compelling virtual life may be (cue the words), it isn’t real. Should executives considering Second Life initiatives intone those words? If they do, will they be seen as [...] [more]

BPEL: Game Changing Technology

Everybody has a “computers will never be able to do that” scenario. Mine used to be the speakwrite in George Orwell?s 1984 — until voice recognition software came along. Today, there are lots of people who don?t believe an ordinary business manager will ever just draw some boxes and lines on a touch-sensitive pad and create an [...] [more]

The 25 Top Applications in History? This List Will Leave You Thinking

Peter Coffee at eWEEK posts an intriguing look at what he calls the 25 most indispensable computer applications of all time. Coffee argues that it’s a good time to look at the killer apps from the history books, given that millions of Microsoft Windows users are sizing up Windows Vista and asking themselves, “What do I [...] [more]

Blogging on the Decline? Time to Thin the Herd

Year-end tends to be a slow cycle for actual tech news, so we spend a lot of time reading an endless stream of year-end wrap-ups and predictions for the coming year, many of which just serve to stir up buzz on the Internet. Such as … Gartner is predicting that 2007 will mark a high-water mark for the blogging phenomenon, indicated [...] [more]