Saturday, March 21, 2009

[Gd] AdWords API sandbox - Best practices

| More

AdWords API Blog: AdWords API sandbox - Best practices

The API sandbox is open to anyone who wants to test code during development, and it's completely free. We recommend using the sandbox as much as possible to catch your bugs during development so they won't hit your production account later. Here are some tips on using the sandbox effectively:

Initialize your sandbox account

Make sure that the first call to the sandbox is a get() call from AccountService, preferably AccountService's getClientAccounts(). Assuming you use user@domain.com as the login email, this call will initialize the sandbox and create 5 test client accounts, namely client_1+user@domain.com to client_5+user@domain.com for your sandbox account. While making this call you should not provide the clientEmail or clientCustomerId headers, since this call expects an MCC account to succeed. 

While making a getClientAccounts() call to the sandbox, set the SOAP headers as follows:

email: address of any google account, such as a Gmail account
password: password of the account
useragent: set to any identifying string
developerToken: set to the value for email, with the string '++USD' (or the currency code of your choice) appended
applicationToken: ignored, and could be set to anything or left out
clientEmail: should be either set to the empty string or left out
clientCustomerId: should be either set to the empty string or left out

The sandbox database is usually refreshed once every month, wiping out all client accounts. Making getClientAccounts() as your application's first API call ensures that all your calls happen against a properly initialized sandbox account.

Simulate error responses

Because a good application needs to gracefully handle errors thrown by the AdWords API, the sandbox provides a mechanism for simulating error messages. If you use user@domain.com++errorCode as the email for a call to the sandbox, the sandbox will return an error response with error code set as the desired errorCode, and a text message indicating that an error response has been forced by the sandbox. 

The error code should be set to one of the valid error codes. For instance, by providing login email as user@domain.com++17, I can simulate error code 17 (account exceeded maximum number of allowed campaigns). 

The SOAP response looks as follows:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>soapenv:Server.userException</faultcode>
      <faultstring>Error forced by the request (Sandbox)</faultstring>
      <detail>
        <ns1:fault xmlns:ns1="https://adwords.google.com/api/adwords/v13">
          <ns1:code>17</ns1:code>
          <ns1:message>Error forced by the request (Sandbox)</ns1:message>
          <ns1:trigger>user@domain.com++17</ns1:trigger>
        </ns1:fault>
      </detail>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>

Similarly, you can also test for some policy violations in ads and keywords. For instance, providing repeated punctuation in the ad or keyword text, such as "Hello World!!" as the ad title, should trigger a policy violation error. However, the sandbox doesn't have all of the policy checks in place, so you can't test your application against every possible policy violation, e.g. trademark-related violations. 

Generate reports

Since generating reports is one of the most common calls in the AdWords API, the sandbox provides features to test each stage of your report generation logic. In the sandbox, you can create either a report whose status does not change, or a report whose status changes from pending to deleted. If you include any one of the following strings in the report name field while creating it, it will create a report with the specified status.

  • fixstatus=Pending
  • fixstatus=InProgress
  • fixstatus=Completed
  • fixstatus=Failed

If the name doesn't contain any of the above codes, the sandbox will create a report whose status changes as follows:

  • During the first minute since the report job was scheduled, the status is Pending.
  • During the second minute, the status is InProgress.
  • During the third minute, the status is Completed.
  • After the third minute, the report is deleted.

Also, a call to getAllJobs will return four reports, one for each value of ReportJobStatus. Sandbox reports do not return any data related to any live accounts. So if you want to test your report parsing logic against some live data, you can generate a report of the desired type in the Reports Center of your production account, download it in xml format, and use it to develop and test your code.  

Handling account limits

As with a live account, an AdWords sandbox account can hold a maximum of 25 active campaigns, with up to 100 active ad groups per campaign. If your program runs into these limits, then you can change the status of some campaigns or ad groups to "deleted."

TrafficEstimatorService and KeywordToolService behavior

Both TrafficEstimatorService and KeywordToolService are available for use in AdWords API sandbox. However, both these services return fake data. TrafficEstimatorService will give you fake data for Position, CPC, and Clicks per day. KeywordToolService can give you fake Seed-based keyword suggestions when using getKeywordVariations. It can also give you content-based keyword suggestions and SiteKeyword statistics when using getKeywordsFromSite.

The AdWords API sandbox can greatly help you with your development by preventing bugs from hitting production account during early stages of development. You can find more information on AdWords API sandbox at http://code.google.com/apis/adwords/docs/developer/adwords_api_sandbox.html.

-Anash P. Oommen, AdWords API Team
URL: http://adwordsapi.blogspot.com/2009/03/adwords-api-sandbox-best-practices.html

Friday, March 20, 2009

[Gd] Improvements to Google Checkout Module for osCommerce

| More

Google Code Blog: Improvements to Google Checkout Module for osCommerce

At Google Checkout, we're constantly striving to improve our usability. That's why we've recently simplified and improved the installation and configuration process for the osCommerce Google Checkout module. osCommerce is a popular open-source e-commerce solution and the module is an open-source project hosted on code.google.com.

We've completely reworked the installation process by no longer requiring users to manually copy and paste large swaths of PHP code into their files. Instead, we've created an automated deployment app (shown below) that does this for you. This should ease concerns about lines of PHP getting copied into the wrong place. If you want to learn more about the installation process, you can take a look at our documentation, which contains a step-by-step walkthrough with screenshots showing exactly how it works.


For more details, check out our post on the Checkout blog. We're excited about the improvements to the osCommerce Checkout module. If you're using osCommerce, we invite you to give Checkout a try and share your feedback with us.

By Ed Davisson, Google Checkout Team
URL: http://google-code-updates.blogspot.com/2009/03/improvements-to-google-checkout-module.html

Thursday, March 19, 2009

[Gd] The sandbox prods along

| More

iGoogle Developer Blog: The sandbox prods along

The iGoogle developer sandbox has always served as the bleeding edge version of iGoogle. It's the place to go when you want to be the first to try out new features. Unfortunately, if a bug sneaks into a sandbox release it can grind gadget development to a halt. This puts gadgets.* and OpenSocial developers in a tough spot, because the sandbox is the only place to develop with these features. Or, at least, it was.

Following on orkut's model, iGoogle will now have a "production" sandbox, meant to provide a more stable development environment. New features and improvements will hit the regular sandbox, first. After they've had some time to simmer, they'll move over to the production sandbox.

To enter the production sandbox, first enter the regular sandbox, then append the 'force_prod=1' parameter to your iGoogle URL. If you are not already in the sandbox, 'force_prod=1' will not trigger the proper behavior.

If you're hitting the REST/RPC endpoints, you should now use http://www-opensocial-sandbox.googleusercontent.com/api and http://www-opensocial-sandbox.googleusercontent.com/api/rpc for the sandbox endpoint, and http://www-opensocial.googleusercontent.com/api and http://www-opensocial.googleusercontent.com/api/rpc for the production equivalents.

As always, feel free to discuss sandbox issues in the developer forum.

Posted by Dan Holevoet, Developer Programs
URL: http://igoogledeveloper.blogspot.com/2009/03/sandbox-prods-along.html

[Gd] Introducing the OpenSocial Development Environment

| More

OpenSocial API Blog: Introducing the OpenSocial Development Environment

With the OpenSocial Development Environment (OSDE), you no longer need an online OpenSocial container environment to build your applications. OSDE is a new Eclipse plugin that lets you develop either OpenSocial JavaScript (gadget) client applications or OpenSocial Java client applications using OpenSocial 0.8's REST/RPC protocols, entirely within the Eclipse development environment.

OSDE is the creation of Yoichiro Tanaka, an expert software developer and leading pioneer in OpenSocial development from Japan. Yoichiro has also published a book on OpenSocial development in Japan.

Installing the OSDE plugin onto Eclipse 3.4.1 (or later) takes only minutes, and you can be up and running with a fully self-contained OpenSocial development environment. OSDE provides a complete social network environment in a single plugin, along with the necessary tools to easily manage your environment's social data. Additionally, you won't need to create multiple accounts on a social network for testing your applications. This can come in handy if you happen to feel inspired to create a new OpenSocial app while on a plane!
Architectural Highlights

OSDE is able to provide a complete, standalone development environment because it bundles the same code running on many OpenSocial containers today into a single Eclipse plug-in: for serving gadgets and OpenSocial data, Apache Shindig is bundled along with a compact Java H2 database, allowing for social data persistence. OSDE also uses Hibernate for Java Object Relational mapping of the OpenSocial data entities: people, activities, and data. Plus, OSDE bundles the OpenSocial Java client library so its wizards can quickly generate runnable Java client applications that use OpenSocial's REST/RPC protocols.

Feature Highlights

OSDE also includes development features that greatly enhance OpenSocial development:
  • OpenSocial project creator wizards for both JavaScript/gadget client apps, as well as Java client applications that use the REST/RPC protocols.
  • A re-entrant gadget specification editor that enables efficient editing of OpenSocial gadget properties, views, locale settings, user preferences as well as gadget and spec/JavaScript source code.
  • An OpenSocial console view that shows the console output of the local Shindig/H2 social engine, as well as tabbed views for directly managing the onboard People, Activities and AppData persisted social data.
    • OSDE users can use the social database console to edit their own custom social data (such as people, friend relationships, activities etc.), or they can simply load the sample social data that comes with Apache Shindig's 'Sample Container' application.
For more information on how to use OSDE, checkout the OSDE tutorial (which includes a screencast) and visit the OSDE homepage.

Posted by Chris Schalk, Google Developer Advocate
URL: http://blog.opensocial.org/2009/03/introducing-opensocial-development.html

[Gd] Google App Engine on the Road

| More

Google App Engine Blog: Google App Engine on the Road

More members of the App Engine team are hitting the road in the next two
weeks. If you'll be at any of the following events we'd love to meet and talk
shop! Here's where you can find us:



Wednesday March 18th
5:00
pm - 6:00 pm

New York City



Pete Koomen will be at CommunityOne
East
participating in the Closing Panel Discussion – "Enterprises and
the Cloud". The panel will be moderated by David Berlind, Editor-At-Large of
InformationWeek, and the panelists include Adam Gross, Vice President of
Developer Marketing, Salesforce and Lew Tucker, Vice President and CTO, Cloud
Computing, Sun Microsystems, Inc.




Wednesday March 25th

9:00 am - 12:20 pm

Chicago



Joe Gregorio will be
teaching a half-day tutorial at PyCon 2009 entitled An
Introduction to Google App Engine
. From the session description:
"Google App Engine allows you to build scalable web applications and host them
on Google hardware. This hands on tutorial will walk you through the steps of
building a basic web application, from setting up the SDK through to using the
major APIs that App Engine provides."



Thursday March 26th

1:30 pm - 2:30 pm

Philadelphia



Joe Gregorio will be giving the
presentation "Under the Covers of the App Engine Datastore" on March 26th
at the Emerging
Technologies for the Enterprise conference in Philadephia
.

From the session description: "This talk walks through the
internals of the App Engine Datastore, how data is stored, how indexes are
built, and how queries are executed. We then discuss how those
architectural decisions make the App Engine datastore scalable and finally
go into how those constraints affect how you design your applications
schema so your application can take full advantage of that
scalability."


Wednesday April 1st

Time TBD

New York City



For the second time in two weeks we return to New York City
where Joe Gregorio will be giving the same "Under the Covers of the App
Engine Datastore" talk at the Cloud Computing
Expo in New York City
.



Posted by Joe Gregorio, App Engine Team

URL: http://googleappengine.blogspot.com/2009/03/google-app-engine-on-road_18.html

Wednesday, March 18, 2009

[Gd] Monster Mesh - A Google Chrome Experiment

| More

Google Code Blog: Monster Mesh - A Google Chrome Experiment

Over the past year or so, my contributions to Google Chrome have mostly been behind the scenes: improving our base libraries, security, stability, and performance. But recently, I made an addition to Chrome Experiments, a site we just launched today. With the Monster experiment I had a chance to step back from working deep within Google Chrome's C++ code, and give my right brain a little exercise.

Since web browsers don't currently support native 3D graphics, the basis for my experiment is a custom 3D rendering engine written in JavaScript. It uses some pretty intense numerical computations to project the 3D shapes into a 2D image, like your eye would. These are then drawn to the screen using the HTML5 canvas element. This process is a similar concept to early 3D game engines, before accelerating graphics cards handled the work.

JavaScript wasn't originally designed with intensive mathematical computation in mind; the real trick is not in writing the engine, but making it perform well in the high-level language running in your browser.

Compared to creating the 3D model beforehand and embedding the data in the application, Monster creates the mesh using software algorithms in real time while the demo runs. This has some nice advantages like decreasing download time, but it requires even more processing power to draw every frame.

Here's what it looks like in action:



The demo starts with a simple cube, but as it progresses, the cube is smoothed and pulled apart to become exponentially more complex. The values used in these operations are varied over time, creating an animation that brings the monster to life. Anytime during the demo you can hit 'p' to pause, and explore the scene with your mouse. With a bit of careful programming (ok, a lot) and the performance of V8, it's possible to do all this work and still generate smooth and consistent graphics.

So give it a try and take a look through the other Chrome Experiments on the Google Chrome Blog. If you've made something interesting with JavaScript please submit it, too. We'll be highlighting more experiments and holding sessions Google Chrome at Google I/O on May 27 - 28 in San Francisco.

By Dean McNamee, Google Chrome Team
URL: http://google-code-updates.blogspot.com/2009/03/monster-mesh-google-chrome-experiment.html

[Gd] Build OpenSocial Apps for Social Change, Win Prizes

| More

OpenSocial API Blog: Build OpenSocial Apps for Social Change, Win Prizes

The Change the Web Challenge invites developers to create widgets and web applications that help people connect to opportunities to make a difference all over the web. It's a contest happening right now with $10,000 in prizes!


The Change the Web Challenge is being run by Social Actions - an aggregator of actions people can take to support causes, nonprofits, and progressive projects from more than forty different sites - like GlobalGiving, Change.org, DonorsChoose.org, Kiva.org, Idealist.org and VolunteerMatch. Social Actions then makes these actions available in a common format and API.

Now we’re looking to get those actions out there on the web sites, blogs and social networks we visit every day.

That's where OpenSocial comes in.

OpenSocial is the key to the social web. By enabling you to build apps that help people connect to actions on the most popular social websites like hi5, LinkedIn, MySpace, Netlog, Ning, orkut, and Yahoo! - you can help millions of people make a difference!

So the question we want to ask the OpenSocial community is:

What’s your dream idea for an OpenSocial app that helps people engage and interact around ways to take action?

Some ideas that might help get you started:
  • An app that helps you find and share (and maybe show off) actions on your favorite OpenSocial social network.
  • An app that enables you and your friends to compete to see who can take the most actions.
  • An app that displays the hottest actions on your profile for the issues you care about.

Got an idea?

We're also hosting an online chat, OpenSocial for Social Change on Wednesday, March 25th (11am-12pm PST) with guests Dan Peterson (President, OpenSocial Foundation), Jay Parikh (Secretary, OpenSocial Foundation + Senior Vice President of Engineering at Ning) & Maxwell Newbould (Product Developer for MySpace OpenSocial) to explore and brainstorm how OpenSocial's framework and apps can help create a better world. The chat will be open to everyone to participate. Please RSVP here.

Posted by Joe Solomon, Director, Social Actions' Change the Web Challenge
URL: http://blog.opensocial.org/2009/03/build-opensocial-apps-for-social-change.html

[Gd] Updated GoogleBar features new UI and targeted sponsored results

| More

Google Code Blog: Updated GoogleBar features new UI and targeted sponsored results

By Adam Feldman, Google Developer Team

The GoogleBar, a control in the Maps API to allow users to search the map for local businesses, landmarks and points of interest, has just launched a new version. In addition to a greatly improved UI, the new GoogleBar includes advertising targeted to the user's searches. This new feature will improve the user experience by providing targeted and relevant sponsored results, and you can benefit by sharing in the revenue of including these results on your site. You can see the new GoogleBar, together with ads, below:


As shown above, the new version of the GoogleBar contains advertising. Profiting from the advertising personally is as easy as signing up for an AdSense account and including your AdSense publisher ID when you create the GoogleBar. See the recent Maps API Blog post for details. Whether you already have a map on your webpage or not, it only takes a few lines of code to embed a fully searchable map into your site - the GoogleBar documentation will tell you everything you need to know.

The GoogleBar is built upon our low-level Local Search Control. For those interested in peeking under the covers, check out the Local Search Control documentation and Code Playground examples.

Questions or comments? Please visit the AJAX API and Maps API discussion groups.
URL: http://google-code-updates.blogspot.com/2009/03/updated-googlebar-features-new-ui-and.html

Tuesday, March 17, 2009

[Gd] Updated Local Search Control used in brand new GoogleBar

| More

Google AJAX APIs Blog: Updated Local Search Control used in brand new GoogleBar

A much requested feature, the Local Search Control now includes ads when a search is performed. Users will benefit from seeing targeted and relevant sponsored results, and you can benefit by sharing in the revenue of including these results on your site. Ads aren't the only thing that's new - there's also a new (and, we hope you agree, better) UI:



This new Local Search Control has been used in a brand new version of the GoogleBar (part of the Maps API). In almost all cases, the GoogleBar provides the ideal way to add searches to Google Maps. The GoogleBar, too, includes advertisements with the results. In order to share in the revenue, you need to supply your AdSense publisher ID. You can use your existing ID or sign up for a new AdSense account. Once you have an account, get your AdSense publisher ID and include it as an option when you set up the GoogleBar:


<script src="/jsapi?key=YOUR_KEY_HERE" type="text/javascript"></script>
<script type="text/javascript">
google.load("maps", "2");
var opts = {

googleBarOptions : {
style : 'new', // This tag is necessary for the first few weeks until the new UI becomes default
adsOptions : {
client : #### // Your Google AdSense publisher ID
}
}
}
map = new GMap2(document.getElementById("map"), opts);
map.setCenter(new GLatLng(33.956461,-118.396225), 13);
map.enableGoogleBar();
</script>


Optionally, you may also specify an AdSense for Search channel (more info on channels), the Ad Safety Level to associate with your advertising, and the language in which to display results. For a full list of options and details on including them, see the GoogleBar documentation. Note: currently ads only appear for results that are inline - this limitation should be removed within a few weeks.


If you'd like to learn more about the new underlying, low-level Local Search Control, the reference documentation and Code Playground examples contain everything you need to know.

For more information, see this recent post on the Maps API blog. Questions or comments? Please visit the AJAX API and Maps API discussion groups.
URL: http://googleajaxsearchapi.blogspot.com/2009/03/updated-local-search-control-used-in.html

[Gd] Dev Channel Update: 2.0.170.0

| More

Google Chrome Releases: Dev Channel Update: 2.0.170.0

Google Chrome's Dev channel has been updated to 2.0.170.0. Most of the focus this week was on usability and stability fixes, in addition to WebKit and V8 merges.

New
  • V8 has been updated to version 1.1.1.2, read more in the V8 changelog.
  • 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.
Fixes
  • Fixed a regression that was preventing Windows taskbar from appearing when it was in auto-hide mode and Chrome was maximized.
  • Regression related to session restore has been resolved.
  • Fixed issue where horizontal scrolling was reversed for certain types of mice.
  • Clicking on the exit full screen link now works.
  • Fixes issue where URLs/bookmarks could not be dragged and dropped on to the title bar.
  • Fixed issue where plugins would not hide appropriately during in page navigation.
  • The complete list of changes is available in the release notes.
Known Issues
  • Issue 8892: Browser crash with closing about:network window.
  • Issue 8653: CPU pegged, if scrolled on flash
  • Issue 8732: Provide a scroll bar for about:network dialog
  • Issue 8767: Can create multiple Downloads tabs from Download shelf
  • Issue 8220: No more status spinning in Downloads page
  • Issue 8637: Unable to drag window when one browser window open with single tab
  • Issue 8827: Import browsring history shows today's history only in the history page.
  • Issue 8822: Tab crashes with debugger !
  • Issue 8821: Inspector is broken, shows empty elements
  • Issue 8372: Background paint issues with Task manager/B'Manager in maximized mode
  • Issue 8587: Regression: Encoding auto-detect doesn't work any more
  • Issue 8517: tabbing should work on a SSL interstitial page
Find about the Dev channel and how to subscribe at http://dev.chromium.org/getting-involved/dev-channel.


Anthony Laforge, PMP
Chrome Program Manager
URL: http://googlechromereleases.blogspot.com/2009/03/dev-channel-update-201700.html

[Gd] Beta update: A new Beta channel

| More

Google Chrome Releases: Beta update: A new Beta channel

Google Chrome's Beta channel is back with 2.0.169.1. You can learn more here: http://chrome.blogspot.com/2009/03/google-chrome-has-new-beta_17.html.

We'll be stabilizing the features and fixing the bugs until it's good enough for the Stable channel.

If you've been waiting for something more stable than the Dev channel to try out new Google Chrome features, you can switch to the Beta channel now.

--Mark Larson
Google Chrome Program Manager
URL: http://googlechromereleases.blogspot.com/2009/03/beta-update-new-beta-channel.html

[Gd] Google Narratives Series

| More

Google Code Blog: Google Narratives Series

By Christine Songco, Google Developer Programs

Google Code has highlighted many developers who've created applications using AppEngine, OpenSocial, AdSense, and Google Maps, however, we often forget to reflect on the stories of the people behind the code. In a series of upcoming blog posts we're calling Google Narratives, we'll be telling these stories to allow our developer community to interact and inspire each other to create or even improve existing projects. At last year's Google I/O, we met Dan Shahin of Hijinx Comics, whose creativity in using open source projects to build his business really makes him stand out. Dan agreed to chat with us and share his story. Thanks, Dan!


The story of Dan and how he came to own a comic book store.

At 28 years running, Hijinx Comics, is the oldest comic book store in San Jose, California. From both a personal and business perspective, Hijinx Comics holds a special place in Dan Shahin's life. At the early age of 11, Dan was hired at Hijinx, which was at the same location at the time but went by a different name. Dan continued to work there throughout high school, building his lifelong passion for comics. He left the comic store behind to attend college and later worked at a number of high tech jobs, gaining experience in UNIX systems administration, release management, and software engineering. But by the year 2000, still Dan couldn't shake the feeling that something was missing in his life. Hours of soul-searching revealed that the missing piece was the excitement and passion that he had once experienced when working with comics.

Dan decided to get in touch with the owner of the comic book store. It turned out to be perfect timing because the owner of the store was ready to sell. Dan picked up everything he owned and moved back to his old neighborhood to run the comic book store. He reopened the store as Hijinx Comics and expanded on the traditional business of collectible comics and novelty items with a new focus on graphic novels and books focused on entertainment reading.

Because of the amount of time Dan had worked with comics as a teenager, he had keen awareness of the pain points related to subscriptions and inventory. Drawing on these experiences, he developed a software suite to manage the subscriptions and inventory of his shop and of a brand new online bookstore. Best of all, he opensourced the whole offering to help other comic book stores alleviate the same issues. From there, a side business grew that involved him consulting and implementing a management system and hosting solution to other comic book stores across the nation.

Today, Dan's working on Ver.2 of his project while Ver.1 runs his current business needs. Below are some excerpts from our meeting with Dan.

Q: Tell me about your Google implementation and if there were any obstacles.

A:
I use a lot of Google Code products to build my own open source comic shop management system. I use Google Checkout for my online bookstore ( http://www.comicbookshelf.com ) and did the level 2 integration myself in my custom LAMP application. I also make heavy use of Google Analytics [used to compare data from his own raw server logs], Charts API, Apps for Domains and thanks to last year's I/O, I'm getting into App Engine development as well as Gears, which is what really brought me to Google I/O. My web-based point of sale system uses all of the Gears APIs to bring down UI latency and to allow offline use, which are the two greatest sticking points to current adoption of similar systems. The documentation is well-written with one exception. It would be nice to have a cookbook section - that type is more helpful. More real-life examples in more detail, casual, reader friendly and a commonly used code section. They tend to have lots of detail and the high level can sometimes be fuzzy


Q: What effect have you seen with your customers as a result of the Google implementation?

A: Customers usually come to visit the store but can also log in and update their subscriptions on their own. There's a quicker checkout process since they do the rest of their browsing online. We have a book club where we collect email addresses for customers that buy certain novels online. Customers are also able to offer reviews or books we sell. These reviews are available both online and in the store. We keep track of this type of data in a CRM and based on it, can help recommend favorites and offer Netflix type suggestions.
We're excited to kick off the Google Narratives Series and plan to highlight more developers in our community so if you have a story like Dan's that you'd like to share with us, we're accepting submissions via our online submission form. Better yet, come tell us your story at Google I/O!

URL: http://google-code-updates.blogspot.com/2009/03/google-narratives-series.html

[Gd] Recent activity: apitestjhartmann has written a tutorial

| More

YouTube API Blog: Recent activity: apitestjhartmann has written a tutorial

As you may have heard, YouTube has been getting more social lately. Our activity feeds help your users stay up-to-date on the cool channels and videos that their friends (or anyone else, for that matter) have been uploading, subscribing to, adding as favorites and so forth.


But we don't just care about YouTube users. We also care about developers. And we want you to have time to be more social, too.


With that in mind, Jeff Fisher and I wrote a hands-on tutorial that explains how to build the YouTubeActivityViewer, a PHP application that uses the new activity feeds. The application uses our PHP client library with jQuery. If you're still not ready to rush out and socialize, you can also build in a caching system with memcache.
URL: http://apiblog.youtube.com/2009/03/recent-activity-apitestjhartmann-has.html

[Gd] The Times They Are A-Changin'

| More

Chromium Blog: The Times They Are A-Changin'

Since we launched Google Chrome in September of 2008, we've tried to provide insight into the product and its development here on the Chromium blog. In that time, we've made a lot of changes to Google Chrome to provide a better experience, and now that change is coming to the Chromium Blog. This morning, we launched a new blog, called the Google Chrome Blog

The Google Chrome Blog is intended to highlight points of interest to general users, in a way that is accessible to as wide an audience as possible. It's where you will read about new features that have been released, find interesting tips on how to get the most out of Google Chrome, and stay plugged into the product in general. Many of the types of posts that previously would have surfaced here, such as announcements of our spell-checking improvements, will now appear on this new blog instead of the Chromium blog.

Have no fear, the Chromium blog will still exist, but now with a renewed focus on the original purpose of the Chromium blog. The blog will be dedicated to announcements of things that are happening within the Chromium project itself. We've always felt it important that, as an open source product, we do our work in the open (from general and technical discussion groups to code reviews to design docs) and stay in touch with the open source community. We're going to take this opportunity to try to be more communicative about project status, and news of note particularly to the developer community. We hope these changes make for a better experience for you, so please let us know what you think!

Posted by Ian Fette, Product Manager
URL: http://blog.chromium.org/2009/03/times-they-are-changin.html

Monday, March 16, 2009

[Gd] Jaiku moves to App Engine, new article on remote_api, and more!

| More

Google App Engine Blog: Jaiku moves to App Engine, new article on remote_api, and more!

A number of exciting App Engine-related snippets have made the rounds over the past couple of weeks. Here's a quick summary:



Jaiku moves to App Engine



Last April, Jaiku's official blog confirmed that Jaiku was being ported to App Engine. We are pleased to announce that not only is Jaiku now hosted on App Engine, but substantial progress is being made on the related open source effort to build out the Jaiku-based microblogging platform, Jaiku Engine, which allows organizations, groups, and invidivuals to deploy their own microblogging service to App Engine. For more details, check out the official Jaiku blog posting.



Trender apps launched on App Engine



Jaiku isn't the only application to launch on App Engine in recent weeks. Enter NYT Trender and Flickr Trends which allow users to view the popularity of search terms over time based on occurrence in the New York Times and Flickr respectively. Both mashups display relevant photos for the terms entered, adding to the richness of the experience.



New remote_api article available



Googler Nick Johnson recently published a handy guide introducing the remote_api module which debuted with release 1.1.9 of the App Engine SDK. The module allows remote access to an application's datastore and Nick's guide describes how to set up and use it with plenty of sample code to help you build your own interactive console and map framework. Also, in case you missed them when they were first posted, the articles on paging and avoiding datastore contention using sharded counters are great reads as well, particularly if you're interested in building a highly scalable and efficient apps.



App Engine at WeekendApps



Over the weekend of Feb. 20th, 130 developers descended on the Googleplex in order to design, build, and launch an OpenSocial-based application as part of the WeekendApps - OpenSocial event. While OpenSocial was the star of the show, App Engine garnered a lot of interest itself with BuddyPoke! creator Dave Westwood and App Engine advocate Fred Sauer in attendance. In the end, over 14 new applications were presented, at least 3 of which were built on App Engine. Of these three, the team behind Buddy Quiz! won a Google I/O pass for "best product vision" and another, Yumie Date, recently received an Editor's Pick promotion from MySpace. Neither team had ever used App Engine prior to the event and one had never even worked with Python.



Posted by Jason Cooper, Google App Engine Team

URL: http://googleappengine.blogspot.com/2009/03/jaiku-moves-to-app-engine-new-article.html