Showing posts with label Google Apps/Tools. Show all posts
Showing posts with label Google Apps/Tools. Show all posts

Google Chrome Beta with Your USB (Thumb) drive  



Google
released its own browser called Google Chrome Beta this week. The shinning chrome is not just a browser, it is actually an application that builts in many features to perform the important stuffs you do such as searching, chatting, email, browser history, memory management and so on (as missing them in other browsers like Internet Explorer,Opera and others).
It's amazing that Google comes up with something 'special' and also becomes more like Internet Operating System near future.
Here, what the Google Chrome Beta means for users/developers:
  • Multi-process architecture with each tab runs on its own, since more and more websites require more resources of our computer.
  • Improve speed and responsivensee across the board.
  • Smarter memory and CPU usage and prevent the browser crashing.
  • Task Manager for websites and visual browser history.
See more on the Screencast and download for PC.




I've found the portable version Google Chrome from Carsten's site. All features are the same as the main browser, and you don't require to install and carry it with USB drive (just unzip the files and start Chrome). It tested with Window XP SP3 and Vista SP1.

Portable Google Chrome Beta here: Download

Read More...
AddThis Social Bookmark Button

Google Web Toolkit (GWT)....official release version 1.5  

GWT released officially the final version 1.5 today. Congrats to the GWT team and the whole community for making this release happen.

What for developers?
With Google Web Toolkit (GWT), you write your AJAX front-end in the Java programming language which GWT then cross-compiles into optimized JavaScript that automatically works across all major browsers. During development, you can iterate quickly in the same "edit - refesh - view" cycle you're accustomed to with JavaScript, with the added benefit of being able to debug and step through your Java code line by line. When you're ready to deploy, GWT compiles your Java source code into optimized, standalone JavaScript files. Easily build one widget for an existing web page or an entire application using Google Web Toolkit.

The main new features :
  • Support Java 5 language and enhanced JRE emulation
  • Performance optimizations and easier JavaScript interop
  • Prettier widgets, better DOM and accessibility, and bi-directional
Read more on GWT product review.

Development Tools
GWT uses Java, you can use all of your favorite Java development tools (Eclipse, IntelliJ, JProfiler, JUnit) for your AJAX development.

Read more further information on GWT blog.

Read More...
AddThis Social Bookmark Button

Google App Engine - Need Without Invitation  

Today, Google just announced that they are opening the App Engine for developers, without invitation and the expected pricing for the service in near future. As I mentioned previously about the Google App Engine which allows you to create web applications and host them on the Google's servers; and I'd been waiting to get an invitation some time, too. Unfortunately, you need to verify your account by entering a code sent to your mobile phone.



Google App Engine only supports Python language at the moment and; offers the free quota of 500 MB of storage and around 5 millions pageviews per month for free. But the developers may able to purchase more computing resources sometime this year and here are the expected prices from Google:
  • $0.10 - $0.12 per CPU core-hour
  • $0.15 - $0.18 per GB-month of storage
  • $0.11 - $0.13 per GB outgoing bandwidth
  • $0.09 - $0.11 per GB incoming bandwidth
There are two new APIs that Google provides these from the feedback, the image manipulation API and the Memcache API.
The image manipulation API enables developers to resize, rotate, flip, crop and enhance images using the same infrastructure used in Picasa Web Albums. With the images API you can perform common image related tasks like thumbnailing images via a simple interface. For more information about the images API, please see our documentation.

The Memcache API is a high-performance caching layer designed to make page rendering faster by reducing datastore queries and improving the performance of your application. The Memcache API was written by Brad Fitzpatrick, the same developer who created memcached, a caching layer that is used in some of the world's most popular web applications, and is compatible with memcached implementations. Please see our documentation for more information about the Memcache API.

Reference from Google App Engine Blog.

Read More...
AddThis Social Bookmark Button

Using Popular Ajax Libraries on Google  

Today, Google announced the Hosting Ajax Libraries API for the developers whose are using any of the popular JavaScript frameworks such as
Using the libraries from Google is that you don't need to worry uploading those files to a site or difficult to manage all the different versions, caching shared JavaScript libraries, and instead performing Web applications faster.
You can see below how to use those libraries from Google.
What exactly is the AJAX Libraries API?

We have worked with a subset of the most popular JavaScript frameworks to host their work on the Google infrastructure. The AJAX Libraries API then becomes a content distribution network and loading architecture for these libraries.
We work with the key stake holders for these libraries to make sure that the latest stable versions of their work get into our system as they are released. Once we host a release of a given library, we are committed to hosting that release indefinitely.

You can access the libraries in two ways, and either way we take the pain out of hosting the libraries, correctly setting cache headers, staying up to date with the most recent bug fixes, etc.

The first way to access the scripts is simply be using a standard tag that points to the correct place.

For example, to load Prototype version 1.6.0.2 you would place the following in your HTML:
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>

The second way to access the scripts is via the Google AJAX API Loader's google.load() method.

Here is an example using that technique to load and use jQuery for a simple search mashup:
 
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>

<script src="http://www.google.com/jsapi"></script>
<script>
// Load jQuery
google.load("jquery", "1");

// on page load complete, fire off a jQuery json-p query
// against Google web search
google.setOnLoadCallback(function() {
$.getJSON("http://ajax.googleapis.com/ajax/services/search/web?q=google&;v=1.0&;callback=?",

// on search completion, process the results
function (data) {
if (data.responseDate.results &&
data.responseDate.results.length>0) {
renderResults(data.responseDate.results);
}
});
});
</script>

You will notice that the version used was just "1". This is a smart versioning feature that allows your application to specify a desired version with as much precision as it needs. By dropping version fields, you end up wild carding a field. For instance, consider a set of versions: 1.9.1, 1.8.4, 1.8.2.

Specifying a version of "1.8.2" will select the obvious version. This is because a fully specified version was used. Specifying a version of "1.8" would select version 1.8.4 since this is the highest versioned release in the 1.8 branch. For much the same reason, a request for "1" will end up loading version 1.9.1.

Note, these versioning semantics work the same way when using google.load and when using direct script urls.

By default, the JavaScript that gets sent back by the loader will be minified, if there is a version supported. Thus, for the example above we would return the minified version of jQuery. If you specifically want the raw JavaScript itself, you can add the "uncompressed" parameter like so:
 
google.load("jquery", "1.2", {uncompressed:true});

Today we are starting with the current versions of the library, but moving forward we will be archiving all versions from now onwards so you can be sure they are available.

For a full listing of the currently supported libraries, see the documentation.


Read More...
AddThis Social Bookmark Button

Create Your Website with Google  

Google has launched to public for free creating your own website at their Google Sites. You can securely host your own site at http://sites.google.com/[your-website] and add as many pages as you like. This service launched a few months ago, exclusively as part of Google Apps for companies and organizations that wanted to use the service on their own domains. But it is now for anyone, easy to set up a website to share all types of information -- teams projects,company intranets, community groups, classrooms, clubs, family updates and so on..according to Google said.
Getting started with Google Sites is easy. You can create different types of pages from scratch with the click of a button, and you can embed documents, calendars, photos, videos and gadgets directly into those pages. Similar to Google Docs, built-in editing tools allow for popular text and formatting changes to be made in a straightforward, WYSIWYG manner. Once your site is up and running, inviting people to edit or view your content is as simple as entering in their email address (of course, you can change access levels at any time). And you (or anyone who has editing privileges) can add or edit information whenever you'd like.

You can look at the streamcast for 3 mins showing how to create your website with Google sites.

Read More...
AddThis Social Bookmark Button

Google Translator: the Best Free Online for Web  

Today, people are blogging in multiple languages to create a conversation with readers outside the English Speaking blog. Google translator becomes the most popular and best free Web-based language tool.

Google Translate's coverage has been expanded dramatically. It now supports the translation between any of the following languages: English, Arabic, Bulgarian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hindi, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish (the new languages are shown in bold). From 26 language pairs, Google Translate now supports 506 language pairs and becomes the most comprehensive online translation tool available for free.
Reference from googlesystem, read more.

It supports the translating language from Text and Web, Translated Search and Dictionary. Here, you can try Google Translator from google.
I created the widget's google translator, as seen on my web blog and there are 19 main different languages with each own flag.
Added new languages' coding:
 
<!-- Add English to Bulgarian -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|bg&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|bg&tbb=1&ie='+e;};" title="Bulgarian">
<img width="30" src="http://www.google.com/images/flags/bg_flag.png" height="20"/>
</a>
<!-- End English to Bulgarian -->

<!-- Add English to Coratian -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|hr&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|hr&tbb=1&ie='+e;};" title="Coratian">
<img width="30" src="http://www.google.com/images/flags/hr_flag.png" height="20"/>
</a>
<!-- End English to Coratian -->

<!-- Add English to Czech -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|cs&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|cs&tbb=1&ie='+e;};" title="Czech">
<img width="30" src="http://www.google.com/images/flags/cz_flag.png" height="20"/>
</a>
<!-- End English to Czech -->

<!-- Add English to Danish -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|da&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|da&tbb=1&ie='+e;};" title="Danish">
<img width="30" src="http://www.google.com/images/flags/dk_flag.png" height="20"/>
</a>
<!-- End English to Danish -->

<!-- Add English to Finnish -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|fi&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|fi&tbb=1&ie='+e;};" title="Finnish">
<img width="30" src="http://www.google.com/images/flags/fi_flag.png" height="20"/>
</a>
<!-- End English to Finnish -->

<!-- Add English to Hindi -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|hi&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|hi&tbb=1&ie='+e;};" title="Nowegian">
<img width="30" src="http://www.google.com/images/flags/in_flag.png" height="20"/>
</a>
<!-- End English to Hindi -->

<!-- Add English to Nowegian -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|no&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|no&tbb=1&ie='+e;};" title="Nowegian">
<img width="30" src="http://www.google.com/images/flags/no_flag.png" height="20"/>
</a>
<!-- End English to Nowegian -->

<!-- Add English to Polish -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|pl&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|pl&tbb=1&ie='+e;};" title="Polish">
<img width="30" src="http://www.google.com/images/flags/pl_flag.png" height="20"/>
</a>
<!-- End English to Polish -->

<!-- Add English to Swedish -->
<a href="javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=en&langpair=en|sv&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=en&langpair=en|sv&tbb=1&ie='+e;};" title="Swedish">
<img width="30" src="http://www.google.com/images/flags/se_flag.png" height="20"/>
</a>
<!-- End English to Swedish -->

Completed all languages' coding:

You can just copy-paste the following lines of JavaScript code anywhere in your page element.

Read More...
AddThis Social Bookmark Button

Cuzillion wtih High Performance on Web  

Steve Souders released a new open source tool called Cuzillion, at Web 2.0 Expo. The tool is for constructing web pages to see how components interact and lets you test out different techniques for optimizing performance in browsers.

So what's Cuzillion behind the idea, he says:
I’m constantly thinking of or being asked about how browsers handle different sets of resources loaded in various ways. Before I would open an editor and build some test pages. Firing up a packet sniffer I would load these pages in different browsers to diagnose what was going on. I was starting my research on advanced techniques for loading scripts without blocking and realized the number of test pages needed to cover all the permutations was in the hundreds. That was the birth of Cuzillion.

He also talks about some examples:
A great example of how Cuzillion is useful is looking at the impact inline scripts have when they follow a stylesheet in Internet Explorer. Typically, a stylesheet followed by any other resource results in both resources being downloaded in parallel in Internet Explorer. (In Firefox stylesheets block parallel downloads, so this performance optimization is only applicable to IE.) Here’s a Cuzillion page that shows this: stylesheet and image downloading in parallel. Both the stylesheet and image are configured to take 2 seconds to download. Since they download in parallel the page takes about 2 seconds to load as shown by the “page load time”.

But look what happens if we put an innocent inline script between the stylesheet and image: stylesheet, inline script, and image. Now, in Internet Explorer the stylesheet and image are downloaded sequentially, which means the page load time goes from 2 seconds to 4 seconds. If the inline script is simply moved above the stylesheet the two resources are downloaded in parallel again, and the page load goes back down to 2 seconds: inline script, stylesheet, and image.

This was a great discovery. But immediately my officemate asked if inline style blocks had the same effect. No problem. With Cuzillion I just do some clicks and drag-and-drop, and can test it out: stylesheet, inline style block, image. It turns out inline style blocks don’t cause stylesheets to block downloads.

The findings from a tool like Cuzillion are really valuable. The lessons learned from poking at inline scripts and stylesheets can save hundreds of milliseconds on page load times. And it’s a common problem. eBay, MSN.com, MySpace, and Wikipedia all suffer from this problem.

Much thanks to Google for letting me release this code under Open Source. It’s not currently on Google Code but if you want to contribute let me know and I’ll do that. Try it out and send me your feedback. And share your insights with others. We all want the Internet to be faster!

Here is Steve's interview about Cuzillion screencast.


You can find out Cuzillion more about information and the future works at Stevesouders.com/cuzzillon.

Read More...
AddThis Social Bookmark Button

Google App Engine with Python Client Library  

Here is the new version of Python code library with Google App Engine, released by Jeff Scudder, Google Data APIs Team. Google App Engine can able to integrate with Google Apps, and the new library has support for Google App Engine and the Contacts API. The details are from here.

The 1.0.12.1 release of the gdata-python-client has a couple of nifty new features which I thought are worth mentioning. First, is a new module which allows the Python library to be used on Google App Engine. Since the App Engine runs a sandboxed Python interpreter, HTTP calls must be made using one of the App Engine's APIs: urlfetch. After some refactoring of the library's code, I was able to write a drop-in replacement for making HTTP requests, so that the gdata.service module can be used on Google App Engine. To use urlfetch instead of the library's default (httplib), you would use the following:
 
import gdata.service
import gdata.urlfetch
# Use urlfetch instead of httplib
gdata.service.http_request_handler = gdata.urlfetch

This refactoring has the added benefit of making it easier to swap out the HTTP transport layer from under the gdata.service module. I'm planning to take advantage of this for a new mock_service module to use in unit tests, and the door is open if people want to help with that or other ideas (I've been meaning to support httplib2, and will one of these days).

Updated (April 10th, 2008) to reference release 1.0.12.1 instead of 1.0.12. The new release fixes an issue with importing ElementTree.

Read More...
AddThis Social Bookmark Button

Google App Engine with "Hello World"  

Here is the screencast about "hello World" application with Google App Engine.



Find out the other applications here.
http://appdrop.com/apps

Read More...
AddThis Social Bookmark Button

Google App Engine?  


Google App Engine - able to host and run your web application on their own infrastructure.

App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it's ready to serve your users.
You can serve your app using a free domain name on the appspot.com domain, or use Google Apps to serve it from your own domain. You can share your application with the world, or limit access to members of your organization.
App Engine costs nothing to get started. Sign up for a free account, and you can develop and publish your application for the world to see, at no charge and with no obligation.
A free account can use up to 500MB of persistent storage and enough CPU and bandwidth for about 5 million page views a month. During the preview release of Google App Engine, only free accounts are available. In the near future, you will be able to purchase additional computing resources, said Google.


Google App Engine applications are implemented using the Python programming language. The runtime environment includes the full Python language and most of the Python standard library. Although Python is currently the only language supported by Google App Engine, but looking forward to support more languages in the future.

I think, Google becomes "the Internet Operating System", much more like Microsoft. I hope, they won't approach the way Microsoft monopolizes the computing technology these days and the past. Let see how the Google goes...

Reference
Google App Engine Development

Read More...
AddThis Social Bookmark Button