Thursday, May 18, 2006

Google Gifts

Google continues to spew out wonderful software innovations beyond just search -- all at no charge. Google Earth provides a 3D interface to the planet. Google's SketchUp is a simple tool for quickly and easily creating, viewing and modifying 3D models of houses, sheds, decks, home additions, woodworking projects, etc. Google Calendar is a terrific tool for organizing schedules. Google Blogger is the software I use for creating and publishing the ITscout Blog. Google Gmail and Groups provide cool email and group discussion capabilities, respectively. For a complete list of Google's set of awesome free tools, see More Google products.

The latest Google software marvel is the Google Web Toolkit (GWT), a Java software development framework that makes writing AJAX applications easy. With GWT, you can develop and debug AJAX applications in the Java language using the Java development tools of your choice. When you deploy your application to production, the GWT compiler translates your Java application to browser-compliant JavaScript and HTML.

Google Web Toolkit ships with a Java-to-JavaScript compiler and a special web browser that helps you debug your GWT applications.

Here's the GWT development cycle:
  1. Use your favorite Java IDE (like Eclipse) to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful. You can use GWT's set of UI components (called Widgets) to construct the UI elements that make up your AJAX application. Like traditional UI frameworks, Widgets are combined in Panels that determine the layout of the widgets contained within them. GWT supports a variety of built-in Widgets that are useful for AJAX applications, including hierachical trees, tab bars, menu bars, and modal dialog boxes. GWT also has built-in support for remote procedure calls and other more sophisticated web application features.

  2. Use GWT's Java-to-JavaScript compiler to distill your application into a set of JavaScript and HTML files that you can serve with any web server. Your applications run as pure JavaScript and HTML, compiled from your original Java source code with the GWT Java-to-JavaScript compiler. When you deploy your GWT applications to production, you deploy this JavaScript and HTML to your web servers.

  3. Confirm that your application works in each browser that you want to support, which usually takes no additional work.
AJAX is what makes Google Maps so cool. AJAX is what enables Google Maps to be dynamic, interactive, and draggable with no clicking and waiting for graphics to reload each time you want to view the adjacent parts of a map.

In my humble opinion (IMHO), Google Web Toolkit is a gift from the Gods. Thank you Google.


Anonymous Robert Pearson said...

Thanks, Jeff.
This ties nicely with an article at Eric Boutilier's Blog at---

Ajax/Java and Databases

I must say, Google calendar is quite impressive. Maybe the Ajax phenomenon will finally solve my seemingly never-ending search for The One True Calendar: A calendar that not only am I motivated to use (radically fast, minimal-click item entry) but one that I can also get the rest of my family to use. Just think! we'd post and merge all our events, large and small, into one gloriously perfect, ubiquitously accessible, yet secure, (16-year-old got a big Spanish test tomorrow? Bing! goes the alarm on my computer screen at 8:00 the night before prompting me to shout, "Joe, time to `BBL' your IM buddies so we can review the subjunctive!")

Anyway, what's this got to do with a UNIX/FOSS blog? Well being a former systems engineer, I also can't help wondering about the databases that are running behind the scenes of all these nifty new "Ajaxian" applications. Which is why these two recent articles really caught my eye:

* Ajax and Databases
* JavaDB: An idea whose time has finally come?

(By the way, I have no idea what database Google calendar uses.)

Tags: Derby, Database, opensource, Web2.0, Ajax, Java, JavaDB,

Of real interest is the comment from Andrea Campi---
Eric, nice to see you are as enthusiastic as I am about Google Calendar! Regarding Ajax, databases and my post... well, I don't know for sure what Google Calendar uses, but in the case of most Ajax apps out there, behind all the client-side magic sits a classic CGI, or servlet, or what have you using a regular DB. I guess the kind of DB connectivity I wrote about is still in its infancy--and all the more exciting for that. Andrea

Posted by Andrea Campi ( on May 10, 2006 at 06:39 PM CDT
Website: #

After I read Andrea's comment I knew why the NewI/O comment was ignored. I posted it because I agree with comments made by the developer about the need for---
"What we need is a browser designed from the ground up to run programs across the Internet. What we need is an Internet Application Browser (IAB)".
Here it is for your own reading pleasure---

>> (
> This is an interesting project.

Thank you very much.

Currently I use standard TCP/IP, but I am redoing the low level transport as an ssh subsystem using libSSH2


so that it will have access control, and a secure channel by default.
I hope to have this done in a couple of weeks.

The next step will be an MS Windows port of the application browser.
Not that I care about MS Windows, but it will demonstrate the cross
platform capabilities of the concept, and also allow NewI\O to be more
accessible to the masses.

I am also working on a text editor as an example application. It is a
little more substantial than the current little graphics test

At some point I expect to change the rendering library to Cairo
The API will probably be in a flux until then.

> Cool, I saw cairo demonstrated at USENIX a couple of years ago by the
> two grad students that developed it. Cairo is some awsome stuff--I
> cannot wait to see the demo.

It looks like I will get an invitation to the OpenSource Fest, so you
will have to come check it out.

Additional URLs for Information ===

NewI\O Blog

Developers Blog

Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games,including the award winning Linux port of "Civilization: Call To Power."

Posted by Robert Pearson on May 10, 2006 at 05:02 PM CDT #

4:05 AM  

Post a Comment

<< Home