Friday, April 17, 2009

[Gd] Wearing our Developers' Shoes

| More

Google Code Blog: Wearing our Developers' Shoes

I set a quarterly goal to write an application in my 20% time that uses publicly available Google APIs. While some would call this scenario testing, I refer to it as "method user experience design" (think method acting). The process can often be painful, but I do it in the hope that it will make me a better designer. It puts me in the shoes of our customers who build products on top of Google's products. I read the same documentation, search the web for the same solutions, write code against the same APIs, and deploy to the same infrastructure. From this exercise come product improvements and empathy. I also enjoy attempting to make something useful, sketching with Python and JavaScript (the charcoal and conte crayon of web development), and proving that 20% time is alive and well.

When it came time to pick last quarter's application, I wanted to work with YouTube's APIs for two reasons: I have a background in video (as a filmmaker and as a software designer) and I wanted to share family videos with my oldest brother, who is hard of hearing and learning disabled. Fast forward a few months later and I had CaptionTube, an application for creating captions for YouTube videos. CaptionTube has launched on TestTube and Hiroto has written a post about it on the YouTube blog.

In addition to the YouTube Data and Player APIs, the application is hosted on Google App Engine and uses the Datastore, Google Accounts, Mail, and URLFetch Python APIs. I used several open source software projects to create it: Django and jQuery, and app-engine-patch. If you are attending Google I/O in May and would like to ask me questions about my experience or discuss your experience using Google's developer's products, please look for me in the developer sandbox or office hour sessions.

By John Skidgel, App Engine Team
URL: http://google-code-updates.blogspot.com/2009/04/wearing-our-developers-shoes.html

[Gd] OpenSocial community defines version 0.9

| More

OpenSocial API Blog: OpenSocial community defines version 0.9

A new version of the OpenSocial Specification hit the presses yesterday -- packed full of new features to make writing, testing, and maintaining apps much easier. From a streamlined JavaScript API, to a more efficient way to communicate between the app and your server, many of the OpenSocial v0.9 updates aim to make coding and rendering apps blazing fast.

If you're not familiar with the specification process, here's how OpenSocial evolves from one version to the next:
  • New ideas are proposed and discussed on the spec list (which anyone can contribute to).
  • Proposals that are selected by the community are prototyped to flesh out the details.
  • After a vote, the new version of the spec is published.
  • Containers implement support for the new spec.
  • App developers start using the new features.
Luckily, many of the prototypes for these new features were implemented in Apache Shindig, so they'll be coming to a container near you in short order. Keep an eye on your favorite container's blog for announcements (like this one) about when v0.9 features will be ready for you to check out.

Many of the folks who contributed to OpenSocial v0.9 will be at Google I/O in San Francisco on May 27-28. We love to talk about this stuff, so check out the Google I/O site to sign up and join us.

Posted by Lane LiaBraaten, on behalf of the OpenSocial Community
URL: http://blog.opensocial.org/2009/04/opensocial-community-defines-version-09.html

[Gd] Web Search APIs: The next generation

| More

Google Custom Search: Web Search APIs: The next generation

Posted by: Rajat Mukherjee, Group Product Manager

If you are going to the World Wide Web conference in Madrid next week (April 20-24), make sure to attend the panel entitled "Web Search APIs: The Next Generation". Nick Weininger from the Custom Search team will be on the panel. He's going to talk about real-world needs from a Search API, and how the Custom Search API provides various customization options for indexing, ranking, navigation, presentation and monetization.

Don't miss the panel!

Check out details on the WWW 2009 conference program.
URL: http://googlecustomsearch.blogspot.com/2009/04/web-search-apis-next-generation.html

Thursday, April 16, 2009

[Gd] Modifying the Chow-Down Application, part 1: Adding media from YouTube and Picasa

| More

YouTube API Blog: Modifying the Chow-Down Application, part 1: Adding media from YouTube and Picasa

Recently I was given the task of modifying the Chow Down sample application (originally written to demonstrate how to implement the Google FriendConnect API on Google AppEngine) to include videos, pictures and search results in the restaurant detail pages. This task resulted in the creation of Chow Down Gdata (full source code) which uses the YouTube Data API, the Picasa Web Albums API and the AJAX Search APIs.


Since everything was written in Python, using our Python client library was a no brainer. The first step was to add the necessary files and import statements. The application follows a standard MVC layout, so the next step was to create a new view called JsonRestaurantInfoView in views.py, which I then connected both to the ajax_restaurant_info.htmltemplate and also to the restaurants_info method in providers/restaurants.py.

The bulk of the modifications happen inside restaurants_info:

# Create client and query to execute a YouTube search:
gdata_youtube_client = gdata.youtube.service.YouTubeService();
query = gdata.youtube.service.YouTubeVideoQuery()
query.vq = "%s %s" % (restaurant.name, restaurant.city)
video_feed = gdata_youtube_client.YouTubeQuery(query)

# Grab the URL to the embeddable Flash player SWF (if embeddable)
swf_url = video_entry.GetSwfUrl()

if swf_url:
restaurant.player = """<object width="425" height="350">
<param name="movie" value="%s"></param>
<embed src="%s" type="application/x-shockwave-flash"
width="425" height="350"></embed></object>""" %
(swf_url, swf_url)

But wait! We are not done yet. Let's also look for pictures for this restaurant in Picasa:
gdata_picasawebalbums_client = gdata.photos.service.PhotosService()
query_parameters = map(urllib.quote, [restaurant.name, restaurant.city]);

# Fetch a feed of 10 thumbnails, 32x32 pixels in size and cropped to a square
photo_feed = gdata_picasawebalbums_client.GetFeed(
"/data/feed/api/all?q=%s%%20%s&max-results=10&thumbsize=32c" %
(query_parameters[0], query_parameters[1]))

We store all the new metadata in the restaurant object that ends up being passed to the template. To direct users there from the search page, I added a simple show_restaurant_info function which is triggered when a user clicks on the restaurant title in the search listing. While I was in the templates/index.html file, I also added the ajax_api_restaurant_info function which fetches blog, web, news and book search information about the restaurant.

Check out the full source code to get the full picture including information about how this data was also cached.

In the next article, Jeff Fisher is going to talk about how to optimize the performance for this application by using JavaScript.
URL: http://apiblog.youtube.com/2009/04/modifying-chow-down-application-part-1.html

[Gd] Dev Update: Remove Thumbnails from the New Tab Page

| More

Google Chrome Releases: Dev Update: Remove Thumbnails from the New Tab Page

Google Chrome's Dev channel has been updated to 2.0.174.0.

You can find out about getting on the Dev channel here: http://dev.chromium.org/getting-involved/dev-channel.

Notable Changes:
  • Ability to remove thumbnails from the New Tab Page (feature still in development). (Issue: 685)
  • Added "Undo Tab Close" and "New Tab" to the context menu on the tab bar. (Issue: 2144)
  • It is no longer possible to cut or copy from a password text-field. (Issue: 9425)
  • Ctrl+Shift+Arrow allows change in text direction in RTL UIs. Also now support Ctrl+Shift text alignment based on which side of the keyboard those keys are pressed.(Issues: 9762, 9763)

Last Week's Known Issues Fixed:
  • Fixed issue where Google Calendar widget was not showing events. (Issue: 8935)

Known Issues:
  • Text disappears in certain web applications. For example, labels on all day events in Google calendar do not appear except when moused over. (9904)
  • Mouse wheel scrolling does not scroll windows that aren't focused. (9647)
  • Vertical scrollbar disappears when maximizing and resizing window in Gmail. (10009)
  • Delete history from Incognito mode does not refersh the history page. (Issue: 9984)
  • IME issue, form autofill pop-up overlaps the IME candidate window. (Issue: 9596)
Let us know about the issues you find by filing a bug, but please search the open issues first.

A detailed list of changes in this release is in the release notes.


-- Anthony Laforge

Google Chrome Program Manager
URL: http://googlechromereleases.blogspot.com/2009/04/dev-update-remove-thumbnails-from-new.html

[Gd] One-line sitelinks

| More

Official Google Webmaster Central Blog: One-line sitelinks

Webmaster Level: All

You may be familiar with sitelinks, the links that show up underneath the first search result and which lead to specific pages deeper within the site. Sitelinks enable users to jump directly to important parts of a site, which is often useful for large, complex websites. Sitelinks have the additional advantage of giving users an overview of a website's content by highlighting some of the popular parts of the site. For webmasters, sitelinks are also beneficial because they help to expose parts of your site that users may not know about. For instance, a search for NASA provides links to a gallery of images, a page about Space Shuttle and ISS missions, and so on:


Until now, sitelinks have only ever appeared on the first search result, and so at most one site could have sitelinks per query. We're now launching an expansion of sitelinks: a single row of links can now appear for results that didn't show sitelinks before, even for results that aren't in the first position. This means multiple results on one query can now have sitelinks. Up to four sitelinks can show up right above the page URL, instead of the usual two columns below the URL of the first result. Here's an example where the first three results each have one-line sitelinks:


These one-line sitelinks have many of the same benefits as the full two-column sitelinks, but on a smaller scale: they show users some relevant sub-pages in the site and give an idea of what the site is about. Comparing the sitelinks that appear for each result can even illustrate the difference between the sites. Just like regular sitelinks, one-line sitelinks are generated algorithmically and the decisions on when to show them and which links to display are entirely based on the expected benefit to users.

For webmasters, this new feature means it's possible that your site will start showing sitelinks for a number of queries where it previously didn't. We expect this will increase the visibility of and traffic to your site, while also improving the experience of users. If, however, you absolutely would prefer not to have a particular sitelink show up, remember that you can always block a page from appearing as a sitelink for 90 days through Webmaster Tools. In fact, as part of our ongoing efforts at improving the Webmaster Tools experience, we're speeding up our response time to blocked pages, so you should see a blocked page get dropped as a sitelink even faster than before. If you need a quick refresher on how to use the sitelink blocking tool, take a look at this previous blog post. Currently you can only block sitelinks on your site's home page, but we're working on expanding this capability so you'll soon be able to remove them from any other page as well.

We hope you find these improvements to sitelinks and Webmaster Tools helpful for both your site and your visitors!

Posted by Doantam Phan, Software Engineer, and Raj Krishnan, Product Manager, Sitelinks Team
URL: http://googlewebmastercentral.blogspot.com/2009/04/one-line-sitelinks.html

[Gd] Japan's Mixi Announces Open Beta Launch of its OpenSocial Container

| More

OpenSocial API Blog: Japan's Mixi Announces Open Beta Launch of its OpenSocial Container

My name is Yoichiro Tanaka. I belong to the Platform Team of mixi, Inc. “mixi” is currently the most popular Japanese social networking service (SNS) and has more than 16.3 million registered users. I am happy to announce that we have released an open beta of “mixi apps, ” which is based on OpenSocial. The first release of the “mixi apps” container (runtime environment) was in last December, but this was only to select companies. However as of April 8th, we've opened the door to all developers!

Background

"mixi" was launched in February 2004 as one of the first social networking services in Japan. It lets users create profiles, make friends with other users, post diaries, discuss in several communities, share pictures and music with friends, etc.

In addition to those basic features, we have been developing the mixi Platform and working with our partners (service providers or developers) on enhancing the "mixi" service for users. “mixi apps” is one of our services which lets social application providers develop applications that use social graphs formed in mixi, and provide these applications to mixi users. To achieve this, we thought OpenSocial would be the best solution.

Supported Features

  • OpenSocial core APIs (People, Activities and Persistence).
  • The gadgets "core" and "feature-Specific" APIs (The gadgets APIs are mostly supported in the open beta with full support coming in the production release).
  • A mixi specific "Community API," which allows application access to mixi community (or group) information along with its members.
Upcoming Supported Features
  • OpenSocial's RESTful Protocol will be supported in the near future as "mixi Connect."
  • The mixi platform will also support a photo album API, among other APIs.
Timeline
  • Closed beta release - December 2008
  • Open beta release - Available now!
  • Consumer launch - first half of 2009
To learn more about mixi's new OpenSocial platform please visit:

http://developer.mixi.co.jp/ (Note: this site is in Japanese)

To support and engage our new mixi social applications development community, on April 23rd we will hold our first ever mixi OpenSocial developers conference, "mixi Appli Conference 2009." In addition to providing detailed information on how to build applications for "mixi apps," we will also talk about "mixi fund," which is a program that offers financial support to social application developers. More information on this conference can be found at:

http://mixi.co.jp/mixiappli-event/ (Note: this site is also in Japanese)

We believe our upcoming production release of "mixi apps" and overall support of the OpenSocial standards will enable us easily continue innovating on compelling future social services for our users.

Posted by Yoichiro Tanaka, mixi OpenSocial Architect

URL: http://blog.opensocial.org/2009/04/japans-mixi-announces-open-beta-launch.html

[Gd] Who's @ Google I/O

| More

Google Code Blog: Who's @ Google I/O

We frequently hear that developers want to hear from peers who've built interesting applications. That's why we're excited that this year's Google I/O (May 27th - 28th in San Francisco) will involve more developers from the community at large. Today, we're raising the virtual curtain on some of the developers who'll be participating in Google I/O this year.

These developers represent a wide range of companies and apps - all of which are strong examples of Google developer products and open web technologies in action. They'll be presenting technical sessions and demoing their apps at the Developer Sandbox, a new addition to Google I/O featuring demo station "pods". With so many developers at Google I/O, this is a great opportunity for event attendees to check out their apps, ask questions, exchange ideas, and meet new people.

Given the recent App Engine launch, we thought it'd be fitting to introduce a subset of the App Engine developers who will be demoing or presenting at Google I/O:

  • Salesforce.com
    Force.com is the enterprise cloud computing platform offered by Salesforce.com. Salesforce.com is committed to letting developers take advantage of the web as the ultimate platform. Force.com developer evangelist Ron Hess will lead a session outlining how to connect the Force.com SOAP Web Services API to Google App Engine for Java. The project includes an open source Web Service Client that has been completely ported to App Engine. The session will discuss the porting effort, how to use URLFetch to achieve cross- cloud communication and demonstrate a sample integration between App Engine and the Force.com SOAP API.

  • ThoughtWorks and SpringSource
    Guillaume Laforge is the official Groovy Project Manager for SpringSource, and the spec lead of JSR-241, the Java Specification Request that standardizes the Groovy dynamic language. Ola Bini of ThoughtWorks is the creator of the language Ioke and has been one of the core developers for JRuby since 2006. Guillaume and Ola will be speaking about running Groovy (and Grails) and JRuby on top of Google App Engine for Java, respectively.

  • Walk Score (a project of Front Seat)
    Walk Score uses App Engine for the Walk Score API that serves Walk Score data to millions of real estate listings daily. The Walk Score website also uses Google Local Search for their scoring algorithm and Google Maps API for displaying walkability of addresses and heat map views of neighborhoods and cities. The three developers behind Walk Score will be leading a session, AppEngine Nitty-Gritty: Scalability, Fault Tolerance, and Integrating Amazon EC2, outlining their experiences scaling on App Engine and combining App Engine with external services including EC2. They'll also be on hand at the Developer Sandbox.

  • Best Buy
    Giftag, Best Buy's browser add-on for clipping, saving, and sharing web page snippets, launched on App Engine just before Black Friday last year. Using the hProduct open standard and App Engine's datastore API, Giftag enables users to add items to one or more wishlists, then share these via the App Engine-hosted front-end or Facebook. The engineers behind Giftag will be at the Developer Sandbox. (Check out their blog post and video where the team talks about migrating to App Engine)

  • BuddyPoke
    BuddyPoke uses App Engine for fluid and cost effective scalability to handle a rapidly growing user base of over 36 million OpenSocial users. Dave Westwood, founder of BuddyPoke, will be part of the Developer Sandbox. (Check out Dave's video talking about scaling on App Engine)

  • 3scale networks
    3scale provides a Python plug-in that integrates seamlessly to App Engine so that developers can put all their resources into their API's core functionalities. User management, access control, billing and payments can be easily externalized with 3scale for those APIs that run on top of App Engine. The 3scale team will be part of the Developer Sandbox.

To check out speakers, visit the speakers page. To see who'll be demoing at the Sandbox, check out the Developer Sandbox page.

Keep in mind what you see currently on these pages is still 'in progress'. Over the next few weeks, we'll be regularly updating the I/O website with more sessions, speakers, and Developer Sandbox demos, so keep checking back. And each week on the Code Blog, we'll give you a closer look into who these developers are, including guest blog posts authored by them that share their development experiences and tips. (The AJAX API team's gotten a headstart on this)

Finally, we can't end a blog post about Google I/O without a (shameless) plug for actually signing up for the event, so here it is:

<shameless plug>
Early registration for Google I/O ends May 1, so if you're thinking of attending, now's a good time. Sign up at code.google.com/io. We look forward to meeting you!
</shameless plug>

*You can also follow our tweets: @googleio.

By Christine Tsai, Google Developer Products
URL: http://google-code-updates.blogspot.com/2009/04/whos-google-io.html

Wednesday, April 15, 2009

[Gd] Early Look at Java language support expanded to 25,000 developers

| More

Google App Engine Blog: Early Look at Java language support expanded to 25,000 developers


Have you signed up to try Google App Engine for Java yet? We were so overwhelmed with the response to our early look at Java support on App Engine that we decided to let more developers in now, without waiting. Thus, we're expanding the early look signups to 25,000 developers, in order to give more of you a chance to try it out. So please sign up, give it a try, and let us know what you think. We've already seen a number of interesting apps built and deployed. Stay tuned for us to point some of the cooler ones out in the coming weeks.


On another note, if you haven't delved down into the SDK and taken a look around, you may have missed the demo directory. Inside this directory you'll find a number of projects which demonstrate various features of Google App Engine for Java. These demos are a great place to start if you want to learn more about App Engine by example, or if you just want to get hacking on something quickly. Last but not least, we hope these demos are of practical value too, as we included example Ant build scripts and organized the code with standard directory layouts and naming conventions.


Looking to create an end-to-end Java AJAX application? Try out Sticky, the sticky note app written using Google Web Toolkit and App Engine. You'll find useful patterns you can use in your own code, the sample source itself is Apache licensed so feel free to use it directly.


Are your eyes set on a mobile app? Check out the source for Task Engine . Also built with GWT, this simple task app is written with the iPhone and Android in mind.


If scaling your infrastructure is more your cup of tea, you can check out the shardedcounter example. It demonstrates how to implement distributed incrementing counters, which are useful for understanding how to scale larger applications on App Engine.


Note: If you installed the App Engine SDK with the Google Plugin for Eclipse, the SDK and accompanying demos can be found in your Eclipse installation directory, under plugins/com.google.appengine.eclipse.sdkbundle_1.2.0.vXXX.


Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.

URL: http://googleappengine.blogspot.com/2009/04/early-look-at-java-language-support.html

[Gd] AdWords Downtime: April 18, 10am-2pm PDT

| More

AdWords API Blog: AdWords Downtime: April 18, 10am-2pm PDT

The system maintenance we had intended for last Saturday, April 11, did not take place. As a result, we have rescheduled it for this Saturday, April 18, from approximately 10:00am to 2:00pm PDT. You won't be able to access AdWords or the API during this time frame, but your ads will continue to run as normal.

Cheers,
-Jeffrey Posnick, AdWords API Team
URL: http://adwordsapi.blogspot.com/2009/04/adwords-downtime-april-18-10am-2pm-pdt.html

[Gd] Beta Update: 2.0.172.5 - On Hold

| More

Google Chrome Releases: Beta Update: 2.0.172.5 - On Hold

We've stopped the update of 2.0.172.5 due to a slight increase in crashes with early users. We have a fix and a new release is should be out soon.
URL: http://googlechromereleases.blogspot.com/2009/04/beta-update-201725-on-hold.html

[Gd] UI framework changes in Android 1.5

| More

Android Developers Blog: UI framework changes in Android 1.5

On Monday, we released an early look at the Android 1.5 SDK. Not only does this platform update contain numerous new features, APIs, and bug fixes, but Android 1.5 also brings a new default look for the Android UI framework. After Android 1.0 and 1.1, our designers worked hard to refine and polish the appearance of the system. The screenshots below show the same activity (creating a new contact) on Android 1.1 and Android 1.5:

You can see in this example that the buttons and checkboxes have a new appearance. Even though these changes do not affect binary nor source compatibility, they might still break the UI of your apps. As part of the UI refresh, the minimum size of some of the widgets has changed. For instance, Android 1.1 buttons have a minimum size of 44x48 pixels whereas Android 1.5 buttons now have a minimum size of 24x48 pixels. The image below compares the sizes of Android 1.1 buttons with Android 1.5 buttons:

If you rely on the button's minimum size, then the layout of your application may not be the same in Android 1.5 as it was in Android 1.1 because of this change. This would happen for instance if you created a grid of buttons using LinearLayout and relying on the minimum size yielded by wrap_content to align the buttons properly:

This layout could easily be fixed by using the android:layout_weight attribute or by replacing the LinearLayout containers with a TableLayout.

This example is probably the worst-case UI issue you may encounter when running your application on Android 1.5. Other changes introduced in Android 1.5, especially bug fixes in the layout views, may also impact your application—especially if it is relying on faulty/buggy behavior of the UI framework.

If you encounter issues when running your application on Android 1.5, please join us on the Google groups or IRC so that we and the Android community can help you fix your application.

Happy coding!

URL: http://android-developers.blogspot.com/2009/04/ui-framework-changes-in-android-15.html

Tuesday, April 14, 2009

[Gd] ThoughtWorks' Paul Hammant talks about AppEngine for Java

| More

Google Code Blog: ThoughtWorks' Paul Hammant talks about AppEngine for Java

Last week we had a number of exciting announcements and we've received a lot of good feedback so far. We've heard from developers who were excited about cron support, intrigued by the Google Secure Data Connector and pleased with database import. However, most of the excitement has been reserved for the new integrated development environment which was created through the marriage of Google-Web-Toolkit (GWT), Google App Engine for Java and the Google Plugin for Eclipse. Now not only can web app developers write both client and server code using the familiar Java language, they can also share and reuse code between client and server.

I wanted to capture some real world developer feedback, so as part of our Developer Profiles series I sat down with Paul Hammant of ThoughtWorks to discuss his first impressions with the platform. As Paul continues to tinker with the platform you can of course follow him on his blog.



If you have a compelling application that you've written with Google App Engine and GWT I'd like to hear about it.

By Fred Sauer, Google Developer Programs

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.
URL: http://google-code-updates.blogspot.com/2009/04/thoughtworks-paul-hammant-talks-about.html

[Gd] Beyond Testing: Becoming Part of the Innovation Machine

| More

Google Testing Blog: Beyond Testing: Becoming Part of the Innovation Machine

As you may have noticed, we've taken a short hiatus from posting. But all is not lost...we have been building a group of robots that will automatically write witty testing articles for us. We are still tweaking our algorithms for verbosity, humor, and technical detail. Once we are done, the posting will continue. In the mean time, we are sending one of our cyborgs to do a keynote at Star East 2009. Here's the topic of the keynote if you are interested...
Testing, once a marginalized function at Google, is now an integral part of Google’s innovation machine. Patrick Copeland describes how this vital transformation took place. As he was analyzing how to be more efficient and better align his testing team with the needs of the company, Patrick realized they had to move beyond “just testing” and become a force for change. His approach was based on five powerful principles: (1) Building feature factories rather than products, (2) Embedding testing at the grass roots level, (3) Solving problems of scale with technology, (4) Automating at the right level of abstraction, (5) Only doing what the team can do well. Learn how Google test teams used these principles to shift from a “service group” composed predominantly of exploratory testers to an “engineering group” with technical skills. Their focus became “delivering innovation” rather than “testing product.” Learn how Patrick led a cultural shift where product teams saw testing and continuous improvement, not as alien concepts driven by someone else, but as a tool for them to meet their own goals of delivering features quickly and with fewer problems. Discover how you can incorporate the lessons of Google to make your test team a vital force for change.
URL: http://googletesting.blogspot.com/2009/04/beyond-testing-becoming-part-of.html

[Gd] Beta Update: 2.0.172.5

| More

Google Chrome Releases: Beta Update: 2.0.172.5

Google Chrome's Beta channel has been updated to 2.0.172.5. This release includes all the patches and fixes between 2.0.169.1 and 2.0.172.2.

Some highlights for this release:

  • Lots of bug and stability fixes!
  • Added support to cache some form submissions so that when you press back, you don't get the annoying "Confirm Form Submission"
  • Autocomplete popup now appears when you press up/down key in a text-field.
  • Visited links from normal browsing are no longer being displayed as visited (i.e. purple) in incognito mode.
  • Pressing the Del key while a item is selected in the form suggestion popup deletes that suggestion.


Anthony Laforge, PMP
Google Chrome
URL: http://googlechromereleases.blogspot.com/2009/04/beta-update-201725.html

Monday, April 13, 2009

[Gd] Many languages, and in the runtime bind them

| More

Google App Engine Blog: Many languages, and in the runtime bind them


While working on App Engine's new Java runtime, we realized that we were missing something important. Something the Python runtime already had. Something sleek, yet powerful ... and approximately 80 characters wide and 25 characters tall. Yes, we're talking about the Python runtime's nifty shell demo app.



Naturally, we wanted to take the existing shell demo and extend its functionality for our new Java environment. Our idea was that we'd create one REPL to rule them all: a shell demo that supports several different JVM-based languages simultaneously. It was an easy decision to use GWT to build the user-interface, making the terminal interface a cinch. Once we had the basic shell framework, we then added some languages: Beanshell, Clojure, Groovy, JavaScript, Python, Ruby, Scala, and Scheme.



This helps us underscore two important compatibility features of Java App Engine:




  1. Google App Engine for Java accepts Java bytecode, not Java source code. It even supports loading bytecode generated at run time. That means that our new Java runtime can support any language with a compiler that targets the JVM. In fact, many advanced scenarios work as well - such as libraries that rely on runtime bytecode generation (such as dependency injection frameworks, AOP libraries, and expression-language runtimes).


  2. The security sandbox in Google App Engine for Java is flexible. Other techniques for sandboxing Java can be restrictive about the permissions they grant to untrusted code, limiting the types of constructs you can use. For example, many secure Java environments don't allow you to create custom ClassLoaders or use tricks for reflection like setAccessible. Java App Engine attempts to provide this type of functionality in a secure fashion, making it possible to run more types of code (and more languages).



Now, it must be said: please note that this is a demonstration app we developed to show off the power and flexibility of our new Java runtime; it's not a production service, and you shouldn't rely on it for anything important. Further, since this is a single shared instance of this application, running server code code from many users at once, you should exercise caution in entering any sensitive data like passwords into this demo. Finally, though we've worked to ensure rich functionality for as many languages as possible, this is still a proof of concept, and there is surely some language functionality missing from our environment.



But, without further ado, may we present to you, the Lord of the REPLS.


-- Google Software Engineers, Toby Reyelts and James Robinson.


Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.
URL: http://googleappengine.blogspot.com/2009/04/many-languages-and-in-runtime-bind-them.html

[Gd] Google Developer Day returns to Yokohama, Japan: Registration now open

| More

Google Code Blog: Google Developer Day returns to Yokohama, Japan: Registration now open

We are excited to open registration for our second Google Developer Day event this year, to be held on June 9th in Yokohama, Japan.

June 9, 2009 -- Yokohama, Japan

Located outside of Tokyo at the Pacifico Yokohama Convention Complex in Yokohama, you will learn about the latest with our APIs and developer tools, including Android, Google Chrome, App Engine, AJAX APIs, Maps and more. The topics will vary so you can be sure to discover new and interesting ways to use our applications. And don't forget to take part in the time set aside to socialize with fellow developers and Google engineers - it is a great networking opportunity.

If you are in Asia, registration for Google Developer Day China is also open, though space is running out fast! We hope you can join us for one of our upcoming events.

By Alyssa Sachs, Google Developer Programs
URL: http://google-code-updates.blogspot.com/2009/04/google-developer-day-returns-to.html

[Gd] Getting ready for Android 1.5

| More

Android Developers Blog: Getting ready for Android 1.5

Android 1.5 SDK release!I'm excited to announce that starting today, developers can get an early look at the SDK for the next version of the Android platform. This new version (which will be 1.5) is based on the cupcake branch from the Android Open Source Project. Version 1.5 introduces APIs for features such as soft keyboards, home screen widgets, live folders, and speech recognition. At the developer site, you can download the early-look Android 1.5 SDK, read important information about upgrading your Eclipse plugin and existing projects, and learn about what's new and improved in Android 1.5.

We've also made changes to the developer tools and the structure of the SDK itself. Future Android SDK releases will include multiple versions of the Android platform. For example, this early-look includes Android platform versions 1.1 and 1.5. One benefit of this change is that developers can target different Android platform versions from within a single SDK installation. Another is that it enables developers to install Android SDK add-ons to access extended functionality that might be provided by OEMs, carriers, or other providers. We at Google are using this feature ourselves: this early-look SDK includes an add-on for the Google APIs. This add-on provides support for the Google Maps API, which was previously embedded in the "core" SDK.

To help you prepare your applications for the release of Android 1.5 on phones, over the next few weeks we'll be publishing a series of articles on this blog to highlight new APIs and other changes. In addition to the new APIs that I've mentioned, we'll cover topics such as OpenGL, asynchronous tasks, system settings, and new Activity callbacks.

I encourage you to start working with this early-look SDK, but please know that the APIs for Android 1.5 have not been finalized. The majority of the APIs are settled, but there may be some changes before the final release. As a result, it's very important that you don't release applications based on this early-look SDK, since they may not work on real devices. The applications you release should be built on the final Android 1.5 SDK release, which will be available around the end of this month.

I look forward to seeing all the great apps that use the new capabilities in Android 1.5. Happy coding!

URL: http://android-developers.blogspot.com/2009/04/getting-ready-for-android-15.html

[Gd] Developer Docs: v13 in Chinese, Japanese, and now Korean

| More

AdWords API Blog: Developer Docs: v13 in Chinese, Japanese, and now Korean

When we first announced non-English translations of our AdWords API Developer's Guide, we provided Japanese and Chinese versions of the v12 documentation. Our team has been hard at work since then, and we're happy to announce that the existing Chinese and Japanese translations have been updated to cover v13 of the AdWords API. In addition, a Korean translation of the v13 documentation is now available.

We'll continue to release translations for additional languages in the future, so stay tuned for more updates!

--The AdWords API Team
URL: http://adwordsapi.blogspot.com/2009/04/developer-docs-v13-in-chinese-japanese.html

[Gd] Congratulations to Teodor Filimon!

| More

Google Desktop APIs: Congratulations to Teodor Filimon!

A gadget by Teodor Filimon is featured on the Inside Google Desktop blog. See the post Featured gadget: Tabbed Todo List.

Posted by Kathy Walrath, Technical Writer (Google Desktop Team)
URL: http://googledesktopapis.blogspot.com/2009/04/congratulations-to-teodor-filimon.html

[Gd] Congratulations to Teodor Filimon!

| More

Google Desktop APIs: Congratulations to Teodor Filimon!

A gadget by Teodor Filimon is featured on the Inside Google Desktop blog. See the post Featured gadget: Tabbed Todo List.

Posted by Kathy Walrath, Technical Writer (Google Desktop Team)
URL: http://googledesktopapis.blogspot.com/2009/04/congratulations-to-teodor-filimon.html