Les nouveautés et Tutoriels de Votre Codeur | SEO | Création de site web | Création de logiciel

seo Google Storage for Developers open to all, with new features 2013

Seo Master present to you:
By Navneet Joneja, Product Manager

For those of you who have been waiting to use Google Storage, we’re happy to announce that effective immediately, you can get a Google Storage for Developers account without needing to request an invitation.

We’ve also launched several significant enhancements to the service, including more flexible and powerful security features, simplified sharing, the ability to store data in Europe, support for larger objects (up to 5 TB), team-oriented accounts and a completely free promotional tier.

OAuth 2.0 Support
OAuth 2.0 is the new recommended Google Storage authentication and authorization scheme. OAuth 2.0 is an industry standard that we’ve adopted across Google, offering many benefits:
  • Simpler - never sign a request again! OAuth 2.0 uses access tokens for authentication, which obviate the need for complicated signature schemes. We recommend that all OAuth 2.0-authenticated requests be made over SSL.
  • More flexible and powerful - OAuth 2.0 allows for three-legged authentication, where a user can grant an application permission to access Google Storage on their behalf (and revoke the grant at any time if necessary).
  • Secure
    • Your user name and password are used once to create a long-lived (refresh) token which is scoped to allow access to Google Storage o behalf of that account. Your user name and password never needs to live on disk.
    • You don’t need to distribute your long-lived credentials to all the servers that need to access Google Storage. Instead, you can manage your long-lived credential centrally, and use it to create short-lived access tokens that you pass to your host cluster. This means that your long-lived tokens are safer.
    • You can revoke credentials at any time.
Learn more about using OAuth 2.0 with Google Storage for Developers here.

Simplified Sharing
We’re happy to announce that your customers and partners no longer need to sign up for Google Storage in order to be able to access data that you’ve shared with them; you can now share data with anyone who has a Google account.

New Storage Region: Europe
In response to popular demand, effective immediately, we’re adding a new option for data location. You can now choose to store your data in Europe - and get the same high-performance, massively scalable, reliable service as you do when you store your data in the United States.

Regardless of which region you choose, your data will be replicated to multiple geographically diverse Google data centers within the region in order to provide high levels of availability and reliability.

Learn more here.

Team-oriented accounts
Google Storage now uses a team-oriented account model, which allows you to create and manage your account in a more natural way.

We’ve moved to the Google API console for signup and administration, and adopted the same project-based account model that is used by other APIs. After creating a project, you configure billing for it once, and can then add any number of developers to it without requiring them to sign up for separate Google Storage accounts. This means individual developers on a team don’t need to configure billing in order to use Google Storage. This change also makes Google Storage account management consistent with other Google APIs.

Since buckets are now associated with projects rather than individuals, you will need to specify the new x-goog-project-id header with your list-buckets and create-bucket API calls. However, your existing code will continue to work using your new “default” project that already owns all the buckets you created before we implemented project-based accounts. Learn more about projects and the backwards-compatible default project mechanism here.

Support for chunked transfer encoding
Google Storage now allows you to upload your data to Google Storage without knowing the object size in advance, using the standard HTTP chunked transfer encoding mechanism. Using this feature, you can stream data into Google Storage instead of buffering it on your own server before sending it to Google.

New API Version
In order to continue to innovate and deliver high-impact features, we’ve found the need to make some backwards-incompatible changes. In order to deliver these features while retaining backwards compatibility for existing code that doesn’t need the new features, we’re introducing a new API version header. The new API version that implements this change is version 2. From version 2 onwards, all API calls will be versioned using the new x-goog-api-version header.

Version 2 of the Google Storage API does not support HMAC signature-based authentication. Although we strongly recommend that you move your code to use OAuth 2.0, explicitly specify the project ID when creating and listing buckets and use the new API version header, your existing code will continue to work; if you don’t specify the API version in your request, your requests will still be handled by our old API.

Free Trial Use
Starting right now, all new accounts will receive a monthly free quota of:
  • 5 GB of free storage,
  • 25 GB of free data transfer into Google Storage,
  • 25 GB of free data transfer out of Google Storage,
  • 2,500 free PUT, POST and LIST requests, and
  • 25,000 free GET, HEAD and other requests.
Existing accounts will continue to receive 100 GB of free storage until the July 1, 2011 and, in addition, will also receive the same free bandwidth and requests as new accounts. On July 1, 2011, they will automatically move to the new plan.

The new promotional plan will be effective until Dec 31, 2011. Please note that promotional usage will only apply to a user’s first project that uses Google Storage (for existing users, this is the project that was automatically created for them during the account migration).

If you’re an existing Google Storage for Developers user, thank you for using our product and for your valuable feedback that continues to help us evolve the service to meet your needs. As always, we continue to welcome your feedback in our discussion group. If you haven’t yet tried Google Storage, get your Google Storage account and get started for free today.


Navneet Joneja loves being at the forefront of the next generation of simple and reliable software infrastructure, the foundation on which next-generation technology is being built. When not working, he can usually be found dreaming up new ways to entertain his intensely curious one-year-old.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo The Go programming language is coming to Google App Engine 2013

Seo Master present to you: By David Symonds, Nigel Tao, and Andrew Gerrand of the Go Team

The growing ranks of Go programmers will soon have another platform: Go will be the third language, after Python and Java, in which to write Google App Engine apps. This is an exciting new experimental feature of App Engine and a major milestone for Go.

Go is an open source language, initially designed at Google, that was released in November 2009 and has seen significant development since launch. It is a statically typed, compiled language with a dynamic and lightweight feel. It’s also an interesting new option for App Engine because Go apps will be compiled to native code, making Go a good choice for more CPU-intensive tasks. Plus the garbage collection and concurrency features of the language, combined with excellent libraries, make it a great fit for web apps.

As of today, the App Engine SDK for Go is available for download, and we will soon enable deployment of Go apps into the App Engine infrastructure. If you’re interested in starting early, sign up to be first through the door when we open it up to early testers. Once it proves solid, we’ll open it up to everyone, although it will remain an experimental App Engine feature for a while.

You don’t need an existing Go installation; the SDK is fully self-contained, so it’s very simple to get a local web app up and running. The SDK is a really easy way to start playing with Go.

More details can be found at the Go Programming Language blog.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Making stories with social media and YouTube videos 2013

Seo Master present to you:
By Xavier Damman, co-founder of Storify

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


Storify is part of the Google I/O Sandbox. Please come say hi to find out more about how you can leverage our APIs so your users can remix your content to create stories to share on social networks.

Storify provides a super simple drag and drop user experience to create stories using elements from the web: tweets, YouTube videos, Facebook updates, SlideShare presentations, audioboo files, and so on (see Storify in action here). This post explains how we incorporate videos in Storify using YouTube Data API and Player API. All the code snippets are in JavaScript. In fact, our full stack is in JavaScript: we use NodeJS and MongoDB which we think is an über cool mix.


The source of the source

To create a Storify source, we need to be able to get a feed of results using JSONp (basically JSON with a callback function so that you can do cross domain calls; from the YouTube API perspective this is the JSON-C format). For YouTube, the main search API endpoint looks like this:
request: function(formdata) {
return {
'url' : 'http://gdata.youtube.com/feeds/api/videos',
'params': {
'v' : 2,
'max-results' : 20,
'alt' : 'jsonc',
'q' : formdata.keywords
}
};
}
This function is called when the user clicks Submit in the search tab of the YouTube source in the Storify Editor. The main controller executes the request and sends the JSON result to the results method, which returns an array of normalized results:
results: function(json) {

if (json.data && json.data.totalItems && json.data.totalItems == 0) {
throw "No results found";
}

var videos = json.data.items;
var results_array = [];

for (var i = 0; i < videos.length; i++) {
var normalizedResult = {
permalink : 'http://www.youtube.com/watch?v='+videos[i].id,
source : 'youtube',
elementClass : 'video',
metadata : videos[i],
thumbnail : videos[i].thumbnail.sqDefault,
title: videos[i].title,
description : videos[i].description.substr(0,140),
author: {username: videos[i].uploader },
created_at : videos[i].uploaded,
oembed: {html: '<iframe id="youtube-'+videos[i].id+'" type="text/html" width="360" height="294" src="http://www.youtube.com/embed/'+videos[i].id+'?enablejsapi=1&origin=storify.com" frameborder="0">'
}};

results_array.push(normalizedResult);
}
return results_array;
}

Thanks to this normalized representation of a story element – in this case, it’s a video object – we can build an object-oriented story as the user drags and drops any of these elements. This technique has multiple benefits: we maintain attribution to the original content creator, and we can track the content as it spreads across the web (how many times it has been seen and from where).

The story element also provides the oEmbed HTML code. This is used to render the video embed when the video is added to the story. For that purpose we use the YouTube Player API with their new iframe embed.

Story.json

We have a very simple way to get any data out of our platform: just append .json to any storify.com URL and you get the JSON representation of the content of that page.

For example:

Add the Storify Editor to your site

The Storify Editor can be called in an iframe. You just need to provide a callback parameter, like this: http://storify.com/story/new?callback=yoursiteurlcallback. The user will be asked to authenticate with Twitter and then will be able to create a new story. Once the user is done and hits “Publish”, we call you back, passing you the permalink of the new story created:
yoursiteurlcallback?permalink=storyPermalink.

You can then either fetch the JSON of the story by appending “.json” to the storyPermalink or you can embed the story by loading <script src=”storyPermalink.js”></script>. This is a great way to provide your community with a way to create stories right from your site.



This is only the start. We plan to open a Sources API so that any developer can build a source for any service. Please come see us at our booth at the Google I/O Sandbox if you’re interested in joining our developer community. And check out this article in the New York Times to learn more.


Come see Storify in the Developer Sandbox at Google I/O on May 10-11.

Xavier Damman is the co-founder of Storify. He is also the founder of HackDemocracy, a community of hackers who want to improve our democracies using technology.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo New Books API for developers 2013

Seo Master present to you:
By Posted by Kevin Landry, Google Books API Team

Cross-posted from Inside Google Books

Today, we are releasing a new Google Books API in Code Labs. The new Books API will help you write applications to query for the more than 15 million books that are searchable on books.google.com including book metadata, pricing and more. This API replaces the Google Book Search Data and Javascript APIs.

The previous GData API and Javascript API will still be available, but ongoing development work will be focused on the new Google Books API so we encourage you to make the transition to take advantage of new features including:
We’re excited about some of the new capabilities this API gives our developer partners. Using OAuth 2.0, a developer can allow users to retrieve their stored information, including bookshelves in their library, ratings and reviews. With the new JSON structure, accessing this information can be done with ease. Whether you want to use the API on a web page, in a Chrome extension, or on a device, the new Books API gives you a way to access the world’s largest selection of ebooks.

Kevin Landry is the technical lead for personalization and the API for the Google Books team. He has previously worked on the Google Audio and Google Analytics teams.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Cooliris builds visual search for Chrome with next-generation web APIs 2013

Seo Master present to you:
By Austin Shoemaker, CTO, Cooliris

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.

At Cooliris, we develop media applications targeting two broad categories – web applications that run in any standards-compliant web browser, and native applications that target specific platforms with tailored user experiences (e.g. iOS, Android, Windows, Mac OS X).

When we developed the Cooliris Extension for Google Chrome, we set out to create an efficient and visually stunning media browsing experience for the web. To deliver on this promise, we developed a native runtime specialized for multiple operating systems and browsers. While we were delighted with the result, the cost of developing native code for multiple platforms was significant. Ideally we could target a single cross-platform API that provided the performance, flexibility, and native feel of platform-specific code.

The new generation of high-performance graphics APIs supported by Google Chrome enables developers to create cross-platform web applications with a presentation layer that looks and feels more like a native application. Our latest Chrome extension, Image Search by Cooliris, leverages these APIs to provide an immersive visual search experience. The following technologies were key to making this product possible:
  1. WebGL: The ability to render our user interface with OpenGL ES enabled us to recreate our original 3D Wall experience without the use of plug-ins. Because it is a web standard, our extension is already available on both Windows and Mac versions of Google Chrome with no additional effort on our part. The new requestAnimationFrame API enables the app to render frames only when the display refreshes, significantly improving performance and power usage.
  2. Google Image Search API: The AJAX search API brings a rich source of relevant content into the wall. Users begin typing in the search box and instantly see results appear on the wall, allowing for effortless discovery and navigation.
Now that we have built the Image Search by Cooliris extension, we are using next-generation web APIs to push the envelope even further. LiveShare, our next-generation communication platform, is built to take advantage of these capabilities from the beginning – for example, the demo of our upcoming product built on WebGL already uses Chrome's file drag-and-drop API to optimize upload performance.

We have never been more excited about the potential of the web platform to deliver great applications – with HTML5, WebGL, and other emerging standards, it has become possible to create products that rival the performance and user experience of native software.


Come see Cooliris in the Developer Sandbox at Google I/O on May 10-11.

Austin Shoemaker is CTO and co-founder of Cooliris. Austin studied Computer Science at Stanford and leads product development for the Cooliris platform. Previously, Austin worked at Apple developing consumer applications.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Google App Engine: a new version and a preview of future plans 2013

Seo Master present to you:
By Greg D’Alesandre, Senior Product Manager, Google App Engine

Google App Engine, which provides the ability to develop and host applications on Google’s infrastructure, has grown tremendously since it launched in preview status in 2008. More than 100,000 developers use App Engine every month to deliver apps that dynamically scale with usage without the need to manage hardware or software. App Engine now hosts more than 200,000 active apps that serve over 1.5 billion site views daily.

Over the last three years, we’ve collected great feedback from our customers and now believe that the biggest thing we can do to help our customers is to graduate App Engine from preview status. When App Engine graduates from preview status, which we expect to do in the second half of this year, we’ll add additional enterprise-grade features that allow us to support many more business application scenarios. Graduation from preview status also indicates a longer term commitment by Google to the product and provides a deprecation policy whereby we will support prior versions of product APIs for a guaranteed amount of time, allowing applications written to prior API specifications to continue to function.

Today, we’re moving forward with our business focus with the release of App Engine 1.5.0 which includes Backends, improved Task Queues, a new experimental Go runtime, and more:
  • With Backends (for both Python and Java), App Engine can now support applications that require long running and high memory processes. This feature allows for new classes of applications such as report generation apps and custom search engines to be hosted on the platform.
  • The improvements to Task Queues allow for applications to control how tasks are executed and easily share the work using the new REST-based APIs. This API access expands App Engine’s compatibility with other on-premise and cloud services, furthering our commitment to an open development platform.
  • With 1.5.0 we are launching an experimental runtime for the Go Programming Language. Go is an open source, statically typed, compiled language with a dynamic and lightweight feel. It’s also an interesting new option for App Engine because Go apps will be compiled to native code, making Go a good choice for more CPU-intensive tasks. As of today, the App Engine SDK for Go is available for download, and we will soon enable deployment of Go apps into the App Engine infrastructure. If you’re interested in starting early, sign up to be first through the door when we open it up to early testers. If you’d like to learn more, read it about it on the Go Blog.
In addition, when we take App Engine out of preview in the second half of this year, we will provide a 99.95% uptime service level agreement, operational and developer support, offline billing, and a new Terms of Service agreement geared towards businesses. We will also introduce a new pricing structure for App Engine based on more transparent usage-based pricing.

We’re announcing these features and pricing changes in advance so that our customers have time to review them. Adding business features will help App Engine meet a broader set of needs and the new, more transparent pricing model will help customers better align their App Engine investment with their business goals. Learn more about these changes on the App Engine blog.

Finally, we are really excited to graduate from Preview and we want to let everyone know how much we appreciate the support, commitment, and feedback we have received. We look forward to working with you for years to come.


Greg D'Alesandre is now the Senior Product Manager for App Engine after coming back from riding the Google Wave in Sydney. And he's obsessed with chocolate, no, seriously, obsessed.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Android: momentum, mobile and more at Google I/O 2013

Seo Master present to you:
By Hugo Barra, Product Management Director, Android

Cross-posted from the Official Google Blog

Update 5/11: Added video of keynote

This morning at Google I/O, the Android team shared some updates. It’s hard to believe a little more than two and a half years ago, we were just one device, launching in one country, on one carrier. Thanks to the ecosystem of manufacturers, developers and carriers, the platform has grown exponentially. There are now:
  • 100 million activated Android devices
  • 400,000 new Android devices activated every day
  • 200,000 free and paid applications available in Android Market
  • 4.5 billion applications installed from Android Market
Mobile—one OS everywhere
Over the past two and a half years, we’ve shipped eight releases of Android and there are now more than 310 Android devices around the world, of all shapes and sizes. This morning we talked about our next version of Android, Ice Cream Sandwich. Our goal with Ice Cream Sandwich is to deliver one operating system that works everywhere, regardless of device. Ice Cream Sandwich will bring everything you love about Honeycomb on your tablet to your phone, including the holographic user interface, more multitasking, the new launcher and richer widgets.

We also launched Music Beta by Google, a new service that lets you upload your personal music collection to the cloud for streaming to your computer and Android devices. With the new service, your music and playlists are automatically kept in sync, so if you create a new playlist on your phone, it’s instantly available on your computer or tablet. You can use a feature called Instant Mix to create a playlist of songs that go well together. You can even listen to music when you’re offline: we automatically store your most recently played music on your Android device and you can choose to make specific albums or playlists available when you’re not connected. The service is launching in beta today to U.S. users and is available by invitation.



We’ve also added Movies for rent to Android Market. You can choose to rent from thousands of movies starting at $1.99 and have them available across your Android devices—rent a movie on your home computer, and it’ll be available for viewing on your tablet or phone. You can rent from Android Market on the web today, and we’ll be rolling out an update to Verizon XOOM customers beginning today. We’ll start rolling out the update to Android 2.2 and above devices in the coming weeks.

The Android ecosystem has been moving really fast over the last two and a half years and rapid iteration on new and highly-requested features has been a driving force behind Android’s success. But of course that innovation only matters if it reaches consumers. So today we’re announcing that a founding team of industry leaders, including many from the Open Handset Alliance, are working together to adopt guidelines for how quickly devices are updated after a new platform release, and also for how long they will continue to be updated. The founding partners are Verizon, HTC, Samsung, Sprint, Sony Ericsson, LG, T-Mobile, Vodafone, Motorola and AT&T, and we welcome others to join us. To start, we're jointly announcing that new devices from participating partners will receive the latest Android platform upgrades for 18 months after the device is first released, as long as the hardware allows...and that's just the beginning. Stay tuned for more details.

More—extending the platform beyond mobile
From the beginning, Android was designed to extend beyond the mobile phone. With that in mind, we’ve developed Android Open Accessory to help developers start building new hardware accessories that will work across all Android devices. We previewed an initiative called Android@Home, which allows Android apps to discover, connect and communicate with appliances and devices in your home. We also showed a preview of Project Tungsten, an Android device for Music Beta to give you more control over music playback within the Android@Home network.

You can watch the entire Android keynote from Google I/O on our Google Developer YouTube Channel shortly. On behalf of the team, we want to thank the entire Android community of developers, OEMs and carriers who are pushing the platform into new areas and building great experiences for consumers. Without you, the Android platform wouldn’t have grown so large in the past two and a half years. We look forward to seeing where you take it next.



Hugo Barra is Director of Product Managment for Android.


Posted by Scott Knaster, Editor
2013, By: Seo Master

seo A new species of I/O speaker: VCs who can code 2013

Seo Master present to you: With Google I/O less than 2 weeks away, we’re working hard on putting the finishing touches on the 85+ technical sessions we have in store for developers. We’re thrilled for the 180+ speakers who’ll be joining us at I/O, all of whom are talented, technical, and brilliant in their own right. One group of speakers I’m particularly excited about and would like to shine the spotlight on: the venture capital crowd.

This is the first time we’re having VCs speak at I/O. We’re excited about the ones who’ll be participating in I/O sessions. Not only are their insights on technology highly regarded, but most of them are also programmers by trade, have been in the shoes of many I/O attendees (as a developer or entrepreneur), and still tinker with code in their spare time. They’ve got strong opinions on developer tools and technology and often don’t agree with each other, which should make for exciting sessions:
  • Technology, innovation, computer science, & more: VC panel
    Albert Wenger (Union Square Ventures), Chris Dixon (Hunch), Dave McClure (500 Hats), Brad Feld (Foundry Group), Paul Graham (Y Combinator), Dick Costolo (Twitter; moderator)


    What do notable tech-minded VCs think about big trends happening today? In this session, you'll get to hear from and ask questions to a panel of well-respected investors, all of whom are programmers by trade. Albert Wenger, Chris Dixon, Dave McClure, Paul Graham, and Brad Feld will duke it out on a number of hot tech topics with Dick Costolo moderating. **Check out Albert’s
    recent guest post on the “Business of Code”

  • Making Freemium work - converting free users to paying customers
    Brad Feld (Foundry Group), Dave McClure (500 Hats), Jeff Clavier (SoftTech VC), Matt Holleran (Emergence Capital Partners), Joe Kraus (Google Ventures), Don Dodge (Google; moderator)


    A panel of prominent venture capital leaders will help you understand how to build free apps that can be upgraded to paid & how to build products that can be profitable.

We're looking forward to adding the VC perspective to I/O this year. With just 9 days left, the countdown continues!
2013, By: Seo Master

seo Apps4Android: Developing accessibility apps for Android 2013

Seo Master present to you:
By Steve Jacobs, President, IDEAL Group, Inc., and CEO, Apps4Android, Inc

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


IDEAL Group's Android Development Team has developed and released several apps in the Android Market. In this post, we'll highlight three of our apps which capture some of the best aspects of developing on Android.

IDEAL Magnifier


Android smartphones can have amazing hardware, and the platform gives developers the ability to tap into that power. Traditionally, handheld video magnifiers have been standalone, dedicated, hardware devices that can cost hundreds of dollars. Thanks to Android's Camera APIs, we're able to offer similar functionality in the form of a free, open source app.

In addition to using Android's zoom and flash features to make things easier for our users to see, we also enable our users to apply color effects such as converting everything to monochrome and even inverting the colors to improve contrast. Despite the wide variety of Android devices available, we found it relatively easy to support multiple devices since Android enables developers to check what the maximum zoom level is and what color effects are supported. Here's a YouTube video demonstrating IDEAL Magnifier in action.

IDEAL Item Identifier including Talking Barcode Maker


Thanks to Android's Intents system and its MediaRecorder and Text-To-Speech (TTS) APIs, we were able to produce an open source app which turns a user's phone into a talking barcode reader. Talking barcode readers enable blind and visually impaired users to scan the barcode of a product and hear what that item is. In addition, many of the higher end models offer the ability to let users create their own barcodes which they can stick onto items. Unfortunately, like video magnifiers, these devices have traditionally been quite expensive.

We solved the problem of detecting and reading barcodes without spending any development time by simply delegating this task to the ZXing Barcode Scanner. Once we get the UPC code of a product, we do a lookup of that UPC and speak the name of that product.

For custom labels, we record what the user is saying and save it to a file locally. We then use the Send Intent to enable users to email themselves a QR code which contains the automatically generated filename of that recording so that we play back that file when users scan this code. Users can print out the QR code on any sticky label, and voila, their very own custom label. Here's a video demonstrating IDEAL Item ID in action.

Vista Center

The Vista Center is a Palo Alto, California-based organization that helps the blind and visually impaired. We volunteered to create an Android app for them to help users access their educational materials which include topics such as how to use ticket machines and how to set up Android phones for accessibility.

This turned out to be a much easier project than expected, thanks to Android's accessibility features and the strong open source culture that is part of the Android platform's DNA. Specifically, we were able to take advantage of the Google Accessibility Team's I/O challenge which encouraged contestants to open source their submissions. We modified the ccTube app so that it always does a search on startup for videos from the Vista Center, and since Android has accessibility built right into the platform, we didn't need to do anything special to make it work with the TalkBack screen reader.

(Hat tip to Google's Charles L. Chen for helping us connect with the Vista Center and pointing us to Google I/O's Accessibility Challenge, and to Casey Burkhardt, who wrote ccTube and open sourced his code.)

Android is a tremendous platform for building tools that empower people. We're very excited by the fast pace of Android evolution and can't wait to see what the next iteration of this wonderful platform will have to offer.


Come see Apps4Android in the Developer Sandbox at Google I/O on May 10-11.

Steve Jacobs’ greatest passion is to enhance the independence, quality of life, education and mobile communications experiences for tens of millions of consumers with disabilities, senior citizens (like Steve), people who never learned to read, and everyone else.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Developing Enterprise-class apps on Google App Engine and the Google Apps Marketplace 2013

Seo Master present to you:
By Ron Zalkind, CTO and Co-Founder, CloudLock

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


At CloudLock, we're all about cloud data protection. When we decided to build CloudLock for Google Apps, we had three main challenges to solve:
  1. Security of data - No matter which system you use for governance, compliance, and access controls, you want that data to be safe.
  2. Enterprise scalability - By nature, many of the companies facing data governance and regulatory compliance requirements are larger organizations. Because of that, we needed to build CloudLock with the largest Google Apps customers in mind from day one.
  3. Low administrative overhead - We wanted to be able to make the most effective use of our development resources. With App Engine, we spend time building apps rather than managing infrastructure.

Why App Engine?

After researching all the choices available to us, we concluded that Google App Engine was the right choice for us.

1. Data stays within the Google infrastructure - Since CloudLock classifies document sharing permissions to help companies control who has access to what and what is accessible to whom, the location of this highly sensitive data is paramount. Using Google App Engine lets us scan, analyze and present information to our customers natively within the Google infrastructure without any of the data leaving to a third party.

Google's datastore had the attributes we were looking for in a persistent storage solution. It offers a high replication option for high reliability, and since it is implemented on top of BigTable and Google's distributed file system, it runs on the same core infrastructure that powers other Google services like Gmail and Google Apps.

CloudLock customer Brian Bolt from Boise State University put it best, saying "Our security team appreciates the fact that the CloudLock solution is developed and hosted on the Google App Engine platform; and since CloudLock is powered by Google’s App Engine, our data never leaves Google’s Cloud Infrastructure."

2. Scaling with App Engine is easy - While being able to handle the largest Google Apps customers was a top concern, being able to do so on an ongoing basis was another issue we had to solve. Using the Google App Engine Task Queue service, CloudLock is able to analyze massive amounts of data continually. App Engine makes it very easy to start as many background tasks as needed to deal with bursts of load.


The Google Apps Marketplace

The Google Apps Marketplace gives Google Apps customers access to hundreds of applications to extend the capabilities of the core productivity suite. Installing an app from the marketplace is seamless, with a wizard-like interface that makes apps immediately available in a few clicks. The installation securely white-lists the app and grants access to specific domain resources such as Google Docs.


Google’s App Engine Users service allows application developers to easily integrate their app with Google’s account management system (Google account or Google Apps accounts) and OpenID for Single Sign-On. Using the Users service and the marketplace installation we were able to deliver an app that is very easy to install into a domain and gain secure access into the domain's data.

By choosing Google App Engine and the Google Apps Marketplace, we were able to create an application that keeps our customers’ data secure within the Google infrastructure, meets the scaling challenges of the largest Google Apps users, and is immediately and easily available to users.

CloudLock for Google Apps is available directly from the Google Apps Marketplace and runs on Google App Engine.

Update 7:50 AM: This blog post was modified to correctly represent App Engine's certification state. As of May 2011, App Engine is pursuing SAS70-II certification to align it with the other products in the Google Apps suite.

Come see CloudLock in the Developer Sandbox at Google I/O on May 10-11.

Ron Zalkind is the CTO and a Co-Founder of CloudLock, runs the Boston Google App Engine User Group, and has been known to roll up his sleeves and write code while blasting Jay-Z in his headphones.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo How GWT helped DayZipping 2013

Seo Master present to you:
By Webb Brown, Co-Founder of DayZipping

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


We launched DayZipping in July 2010 to help people easily find day trip ideas. Before starting the project we conducted an extensive search to find the most suitable web technologies. When evaluating our options we had two priorities that eclipsed all others. First, we wanted to minimize page load times, because we believed our consumer engagement (photo views, rapid spatial searches, etc.) would be strongly impacted by site performance. Part of this requirement was offering a snappy desktop-like experience for certain sections of our site. Secondly, we wanted an environment that didn't hinder our ability to iterate quickly across our entire web platform.

Below are the key factors that lead us to believe that Google Web Toolkit (GWT) is the best tool for the job. Also, we have included evidence of how GWT features have helped us accomplish these goals:

Inherent GWT Efficiencies. The GWT project structure comes chock full of performance benefits that are practically free. Its compilation process significantly reduces code size by renaming variables and inlining method calls when possible. The bootstrapping project structure permits perfect caching of browser-specific implementations by generating deployment files based on the MD5 hash of file contents. The only cost for these performance improvements is the time spent compiling code when deploying production releases, which for us amounts to a marginal five to ten minutes per week.

Resource Bundling. GWT allows you to reduce round trip times by bundling css, image, and text resources into initial page requests. Browser-specific implementations and perfect cacheing mechanisms are all managed behind the scenes. We've used this to bundle many of our static images and in certain cases removed up to 20 fetch requests on a single page.


Code Splitting. The ability to seamlessly split deployed Javascript into logical chunks has greatly improved our user experience. Google released code splitting after we began development of DayZipping, so we were able to analyze results independent of large feature changes. Implementing code splitting reduced our initial fragment download by approximately 100K, which equated to a 40% decrease in size for most browsers. This change in initial download time decreased our bounce rate by approximately 20% on most pages.

Java Tools. The tools available for GWT development have allowed us to stay nimble despite amassing a substantial code base for a two person development team. Eclipse's refactoring tools have arguably played the largest role in our ability to quickly make changes across the project. Being able to make logical adjustments as well as renaming entire functions or classes without having to track down all references has saved us considerable time relative to a Javascript environment. Eclipse syntax recognition and code completion tools make touching dusty sections of our code more palatable. Having the power of a JUnit test suite gives us the confidence to deploy these changes as rapidly as we could imagine. During these rapid iterations, the GWT perfect caching mechanisms relieve the risk of users being stuck with stale content.


Last year our initial hypothesis of a strong negative correlation between page load times and user engagement received compelling support. We made GWT compiler flag changes that gave us an immediate ~10% performance improvement. (You can explore performance gains by experimenting with the various compiler flag options shown here and analyzing the results.) This particular enhancement drove a nearly 1 to 1 increase in user engagement, pushing average pageviews per visit above 11. These engagement improvements have directly impacted conversion rates, which as a consumer startup is arguably our most important operating metric.

GWT has met our initial requirements with high marks. We genuinely believe that we would have been unable to accomplish these tasks as effectively with any other framework. Come visit our exhibit at Google I/O to hear more about the details of our experience.


Come see DayZipping in the Developer Sandbox at Google I/O on May 10-11.

Webb Brown uses his background in investment banking and software development to do a little bit of everything at DayZipping. He spends his free time outdoors and traveling, all while trying to complete as many trips on DayZipping as possible.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Working offline with Cloud9 on Google Chrome 2013

Seo Master present to you:
By Rik Arends, CTO of Ajax.org / Cloud9 IDE

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


Cloud9 is an online IDE for JS, Python, PHP and Ruby development. By placing all your code in the cloud, you can access your code anywhere, anytime and on any device. But what if you’re not online?

Working with web applications offline has been a difficult problem to solve. Traditional web applications required all the logic for HTML generation and user interaction to be located on a remote server. The "go offline" feature in some of the earliest browsers was hardly more than caching static content and could not deal with much interactivity.

Since the advent of AJAX, many websites and apps have moved to using JavaScript heavily on the client side, providing a much richer and smoother user experience. Now the ability to run a web application in full offline mode is within reach.

Cloud9 IDE is one such application. Built from the ground up to have the user interface running in the browser, the server application provides Cloud9 with WebDAV for file I/O, and APIs for project provisioning and authentication. For a rich offline experience, we would need to make the WebDAV API somehow available offline.


The first step in Cloud9’s offline experience has been to implement the HTML5 offline manifest, also known as Application Cache, to make sure the application loads smoothly while offline. The next step is to provide offline workspace synchronization using the new API provided in Google Chrome for local file system I/O. The Chrome file system implementation, based on the current W3C working draft, allows web applications to have access to the device (through a sandboxed file system). So even if you are marooned on a distant planet and disconnected from the collective, you can still work on your code.

Getting access to the local file system is very easy. The API method to call is the obviously named webkitRequestFileSystem, which takes options to create either a temporary or permanent file system, and to define the size of the sandbox location. The difference between temporary and permanent is quite clear, with temporary acting only as a cache: the files may disappear when the browser needs to free up disk space. Once the file system has been successfully created, you can do all the operations you expect, such as creating, deleting, copying, and moving files and directories.

More information on the full HTML file system API can be found at HTML5Rocks, which includes a detailed entry on what types of file system operations you can achieve with the API.

We are showcasing this feature at Google I/O, and will release this feature later this month on http://c9.io. We are working on creating a nice integration with Google App Engine too, so you can develop and deploy entirely online.

Update 5/11: Corrected information about temporary files; removed paragraph about having to start the browser with a special flag.

Come see Cloud9 in the Developer Sandbox at Google I/O on May 10-11.

Rik Arends has been a developer for 15 years and now manages the development team behind Cloud9 IDE.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Evite’s Use of Google App Engine 2013

Seo Master present to you:
By Dan Mesh, Vice President of Engineering at Evite

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


Evite is one of web's oldest social planning services. Since the launch in 1998, Evite has delivered over a billion party invitations. Although it has served us well, after ten years of operation it became necessary to replace the aging platform, and position Evite for another decade of successful party planning.

The reengineering effort took well over a year. Our development team replaced Java with Python and saw a significant increase in developer productivity. However, dealing with a ten year-old Oracle database remained a challenge. To overcome scalability limitations and inflexibility of a large relational DBMS, we designed and implemented a proprietary data store. We conducted a series of A/B tests and gradually started migrating production traffic to the new system.


Our initial motivation to use Google App Engine was fast provisioning. We introduced App Engine as a temporary solution while we increased scale and optimized our proprietary data store. However, once we imported user profile data and put App Engine backend services in production, we never looked back.

Importing a large data set of user profiles from Oracle RAC into App Engine was challenging at first because we had to perform a bulk import and then keep the data synchronized between the two datastores. As we developed our data synchronization tools we gained better understanding of the API and performance characteristics of the App Engine datastore.

Once we synchronized profile data and enabled production traffic, App Engine really started to impress. We would watch our daily traffic grow and observe App Engine’s automatic scaling in action. Additional server instances would come online to meet increased demand and disappear as traffic lowered, without any sysadmin intervention. Despite our proficiency in the use of cloud computing resources and system automation, it was never this easy to provision new servers. As Grig, Evite’s devops guru, likes to say "It's not in production until it's monitored and graphed." App Engine’s dashboard automatically manages instances and graphs system usage data.


Following our positive experience with Evite profiles, we have continued to use App Engine for other services. Occasional frustrations with elevated error rates on the Master/Slave Datastore disappeared as we switched to the High Replication Datastore. At this point we see no technical obstacles to using App Engine more extensively. Architectural decisions and best practices implemented by the App Engine team are very well aligned with the choices we made in designing Evite’s new platform. This makes it easy to deploy additional services and data sets to App Engine.

The real obstacle to using App Engine exclusively for most Evite services is risk management. As reliable and cost-effective as App Engine has been for us, it is difficult to depend completely on a single vendor/service provider. To ensure availability of our application we use multiple cloud providers. Unfortunately, this strategy prevents us from using certain App Engine features and API's because we do not have adequate replacements for them in other deployment environments.

Evite’s new platform built on Python, NoSQL and App Engine has been a success. Our new web application has been well received by users, and our first iPhone app is receiving positive reviews. (Android version is in the works). We look forward to continued use of App Engine for data warehousing, rapid launches of new services and other projects.


Come see Evite in the Developer Sandbox at Google I/O on May 10-11.

Dan Mesh is a Vice President of Engineering at Evite. His extended responsibilities include espresso deliveries and release day food orders.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Enlighten Us But Make It Quick: Ignite Google I/O 2011 2013

Seo Master present to you:
By Brady Forrest of O'Reilly Radar

Ignite takes place at Google I/O, Tue. May 10, 5 PM PDT in Room 11 at Moscone West. If you can’t be there in person, you can watch live on the I/O Live site.

Geeks like to share. At Ignite events, we've found that a speaker can impart a lot of information to a curious audience in just five minutes. So we went out and found ten geeks to each share some slice of their life. The talks are going to range from life hacks and online experiments to histories of technology. They each get 20 slides that auto-advance every 15 seconds for a total of five minutes on stage. We find that the constraints make the event a lot more energetic than you'd expect.

Ignite events have spread around the world helping geeks share their ideas. Google has been a big supporter of getting the word out about Ignite and is hosting its third Ignite at I/O. For the first time ever we are going to be in a keynote room and will be streamed live - so tune in from 5 - 6 PM PDT on 5/10.

Here are the speakers for Ignite I/O 2011.

Kyle Machulis (Nonpolynomial Labs) - This is your brain. This is your brain on bugs.

What do our biometrics say about our code quality, and vice versa? Can health hardware be a debugger for more than just health?

Matt Cutts (Google) - Try Something New For Thirty Days

What happens when you try a bunch of 30 day experiments? Many succeed, and even the failures are over in 30 days."

Pamela Fox - No, Really, I'm Shy 

People are often surprised to find out that I am really, really shy. I figured that out when I was a kid and have spent my life coming up with workarounds for my shyness, and now I want to share those hacks with all of you.

Monica Rogati (LinkedIn)- Tiger Moms, Ninjas, and Chips, Oh My! Uncovering the Story in the Data

100 million LinkedIn profiles. Career histories going back to the '70s. The data tells stories - how do we hear them through all the noise?

Patrick Davison (Know Your Meme)- Avril Lavigne; or How Global Warming Taught Me Why YouTube's Important

The study of global climate change has created a number of techniques for making sense of the incredible amount of data available. To what degree can the same methods of statistical analysis be used to make sense of another data dump: every comment ever left on Avril Lavigne's YouTube videos?

Kevin Marks
(Salesforce) - Ownership is the Enemy of Control
The history of technology is strewn with examples of attempts to make software behave like property. Some are temporarily successful, but all are ultimately fragile.

Jamie Wilkinson - HackerDad on YouBeMom

YouBeMom is a message board run by and for Moms. How does a new Dad fit in?

Joseph Pred (Burning Man) - Risk Management at Burning Man or: How I Learned to Stop Worrying and Love the Risk.

Fun has become sanitized by amusement parks but a sense of risk is key part of vivid experiences. Risk Management, if done right, can mitigate danger while preserving the essential participant experience.

Annalee Newitz (io9) - Social Media Is Science Fiction

In science fiction, social media spawns hive minds, thought control, privacy mutation, and secret revolutions. Do you want to live in the future you might be building with your platforms and apps today?

John Adams (Twitter) - Speak into the Mic: A History Lesson

"The microphone has been around for nearly 200 years, yet people still have problems using them. Where did microphones come from, how can you use them to sound great, and where can they take you?"

If you've never seen an Ignite talk before you can watch hundreds on the Ignite Show site. If you can't make it to Ignite IO then you should find a local ignite or start your own. If you've always wanted to give an Ignite talk (or really any other talk) then listen and learn as Scott Berkun explains How and Why You Should Give an Ignite Talk:


Brady Forrest is co-Chair for O'Reilly's Where 2.0, Web 2.0 Expo and cofounded Ignite, the geek event, back in 2006. Brady lives in Seattle, where he builds robots and cars for Burning Man, competes for Mayor of finer establishments and is about to host Ignite Seattle 14 on 5/18.

2013, By: Seo Master

seo Google I/O: watch and ask questions in real time 2013

Seo Master present to you:
By Mike Pegg, Google I/O Team

As we set out to plan Google I/O this year we looked for new ways of letting people experience the event online. I/O Live will give you the chance to watch two full days of sessions live online from the Android and Chrome keynotes, product tracks and even performances from our After Hours party.

As you’re watching online, we will also be giving you the chance to ask our product teams questions in real-time. For all of our livestreamed and Fireside Chat sessions we’re inviting you to post questions on Google Moderator. Our teams will answer them during the live Q&A portion of the sessions. Please follow the links below to start posting and voting up questions you want to be asked.

Android Sessions:

Chrome Sessions:

Fireside Chat Sessions:
(not live streamed, recording posted by 5/13)


Mike has spoken at and helped to organize every Google I/O and Developer Day event since 2006. His username is mpegg, while his brother John holds down jpegg.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Page Speed Online has a shiny new API 2013

Seo Master present to you:
Andrew
Richard
By Andrew Oates and Richard Rabbat, Page Speed Team

A few weeks ago, we introduced Page Speed Online, a web-based performance analysis tool that gives developers optimization suggestions. Almost immediately, developers asked us to make an API available to integrate into other tools and their regression testing suites. We were happy to oblige.

Today, as part of Google I/O, we are excited to introduce the Page Speed Online API as part of the Google APIs. With this API, developers now have the ability to integrate performance analysis very simply in their command-line tools and web performance dashboards.

We have provided a getting started guide that helps you to get up and running quickly, understand the API, and start monitoring the performance improvements that you make to your web pages. Not only that, in the request, you’ll be able to specify whether you’d like to see mobile or desktop analysis, and also get Page Speed suggestions in one of the 40 languages that we support, giving API access to the vast majority of developers in their native or preferred language.

We’re also pleased to share that the WordPress plugin W3 Total Cache now uses the Page Speed Online API to provide Page Speed suggestions to WordPress users, right in the WordPress dashboard. “The Page Speed tool itself provides extremely pointed and valuable insight into performance pitfalls. Providing that tool via an API has allowed me to directly correlate that feedback with actionable solutions that W3 Total Cache provides.” said Frederick Townes, CTO Mashable and W3 Total Cache author.

Take the Page Speed Online API for a spin and send us feedback on our mailing list. We’d love to hear your experience integrating the new Page Speed Online API.


Andrew Oates is a Software Engineer on the Page Speed Team in Google's Cambridge, Massachusetts office. You can find him in the credits for the Pixar film Up.

Richard Rabbat is the Product Management Lead on the "Make the Web Faster" initiative. He has launched Page Speed, mod_pagespeed and WebP. At Google since 2006, Richard works with engineering teams across the world.

Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Google APIs Discovery Service: one API to find them all 2013

Seo Master present to you:
Anton
Monsur
Joe
By Anton Lopyrev, Monsur Hossain, and Joe Gregorio, Google Developer Team

As announced at last Google I/O, the new family of Google APIs client libraries runs on top of a brand new API infrastructure, which allows Google to reduce the amount of work needed to release and maintain the client libraries. This is done through a simple API that provides machine readable descriptions of Google APIs that the client libraries take advantage of.

Today, we are announcing the Google APIs Discovery Service, which is the secret sauce behind the new client libraries. This service exposes machine readable metadata about Google APIs including:
  • A directory of supported APIs.
  • A "Discovery document" for each of the supported APIs that includes:
    • A list of API resource schemas based on JSON Schema.
    • A list of API methods and available parameters for each method.
    • A list of available OAuth 2.0 scopes.
  • Inline documentation of methods, parameters, and available parameter values.
The service is accessible through a lightweight JSON-based API. Navigate your browser to https://www.googleapis.com/discovery/v1/apis to get a quick look at the available data.

You can use the APIs Discovery Service to build tools for interacting with Google APIs, such as IDE Plugins and client libraries. We use the service at Google to build a number of such tools:
With the launch of this service, we are also open-sourcing the code for the APIs Explorer, which can serve as a great example of how to use the service.

Read more about Google APIs Discovery Service in the documentation, or explore its API in the APIs Explorer. If you are attending this year’s Google I/O and you want to know more about the service, make sure to attend our session “Building Custom Client Libraries for Google APIs” where you can chat with the developers of the service face-to-face.

We look forward to seeing what sorts of things you can build. Let us know of any issues and feature requests in our developer forum. Happy hacking!


Anton Lopyrev is an Associate Product Manager for Google APIs Infrastructure, previously a software engineer on Street View. He is a computer graphics enthusiast who is also passionate about product design.

Joe Gregorio is a Software Engineer. In the past four years at Google he’s worked on APIs, Google App Engine, Google Wave, and now has come full circle and is back working on APIs.

Monsur Hossain is a Software Engineer for Google APIs Infrastructure and enjoys making it easier to use APIs.


Posted by Scott Knaster, Editor
2013, By: Seo Master

seo Social features for Endomondo Sports Tracker 2013

Seo Master present to you:
By Jesper Majland, Endomondo Android Developer

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


Endomondo is a sports community focused on making exercising more fun, more social and more motivating. Android includes great APIs to support adding a social community to an existing application.

Our Android app, Endomondo Sports Tracker, uses the device’s GPS to measure distance and speed while you are doing your favorite distance-based sport. The result can be shared, commented upon and analysed online within the social Endomondo community.

Until recently, the Endomondo community has only been accessible from a desktop web browser. Now we are bringing this community to your pocket.

So far, we have implemented these three feature areas:

1. Find and connect friends.

We use the ContactsContract API to scan the device for local contacts. We then hash-encode the names and email addresses and send them to our servers to see if they match existing members of the community. The result is a list of possible friends already using Endomondo. The user can then send a friend request by clicking on the relevant person.


2. Sync with a cloud service to get updates.

Once the user has added some friends, we can add some content from our cloud service.
The Sample Sync Adaptor API was exactly what we were looking for. First, we created a new Endomondo account using the AccountManager. Our next step was to write our own synchronization manager by extending AbstractAccountAuthenticator. When the user logs in or signs up, our app automatically creates a new account. The new account can be controlled using Android’s built in “Accounts & sync settings” service.

You can find a very good “how to implement” description here: part 1, part 2.

3. Extend the app to access Contact info.

Our in-app friend list now shows a list of all friends in the community, with a short description of the latest activity and a nice profile picture for each.

We use QuickContactBadges to show friends' profile pictures and to quickly pivot to other ways to contact them; perfect for planning a run together!

When our users and their friends add new accounts, the Android ContactsContract framework will automatically merge contacts, adding a very handy feature to our app without us having to do anything!

For implementation inspirations, take a look here: QuickContactsDemo.

We’re just getting started with adding social dimensions to Endomondo. There are plenty more exciting developments in the works. One of them is the ability to send pep talk messages to friends out exercising, directly from the app. You can download our app from the Android Market and try it out for yourself.

Any input or good ideas are more than welcome. Please post your feedback in the comments.


Come see Endomondo in the Developer Sandbox at Google I/O on May 10-11.

Jesper Majland is involved with all parts of app developing from idea, design and implementation to test/release and bug fixing. In his spare time, he tries to get outside to bike, ski or go for a short run.

Posted by Scott Knaster, Editor
2013, By: Seo Master
Powered by Blogger.