<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkIGQHg8fSp7ImA9WhBaFEw.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195</id><updated>2013-05-24T08:48:41.675-07:00</updated><category term="google friend connect" /><category term="cloud platform" /><category term="MIT CSAIL" /><category term="font api" /><category term="wtm" /><category term="stuff" /><category term="topp" /><category term="SVG" /><category term="community" /><category term="analytics" /><category term="OAuth playground" /><category term="jetpack" /><category term="picasa" /><category term="discovery service" /><category term="classes" /><category term="oreilly" /><category term="email" /><category term="tranparency" /><category term="karaoke" /><category term="freebsd" /><category term="myspace" /><category term="c++" /><category term="google grants" /><category term="google compute engine" /><category term="jaiku" /><category term="visualization" /><category term="firevox" /><category term="java" /><category term="I/O Extended" /><category term="google checkout" /><category term="google visualization api" /><category term="ical" /><category term="best practices" /><category term="Winter of Code" /><category term="django" /><category term="preview" /><category term="Google tech talk" /><category term="africa" /><category term="web fonts" /><category term="google code" /><category term="mac" /><category term="silverstripe" /><category term="bespin" /><category term="Google Developers Live" /><category term="ubuntu" /><category term="web exponents" /><category term="gdg" /><category term="conferences" /><category term="google.org" /><category term="google data protocol" /><category term="I/O Live" /><category term="podcast" /><category term="cryptography" /><category term="apis" /><category term="ajax search books news apis" /><category term="hacking" /><category term="website optimizer" /><category term="creative commons" /><category term="osx" /><category term="internationalization" /><category term="guice" /><category term="chronoscope" /><category term="student programs" /><category term="doubleclick" /><category term="PowerMeter API" /><category term="gdd09" /><category term="axsjax" /><category term="atom publishing protocol" /><category term="code for educators" /><category term="GWSOP" /><category term="named" /><category term="WhiteHouse.gov" /><category term="advogato" /><category term="extensions" /><category term="collada" /><category term="google doctype" /><category term="result snippets" /><category term="howto" /><category term="Google Developers site" /><category term="startup" /><category term="google gadgets" /><category term="google io" /><category term="google storage" /><category term="gdd08" /><category term="google technoloy user groups" /><category term="openssh" /><category term="image search" /><category term="fusion tables" /><category term="google earth" /><category term="unix" /><category term="Marketplace" /><category term="samba" /><category term="gdd07" /><category term="standards" /><category term="Google Developers University Consortium" /><category term="camino" /><category term="gmail" /><category term="mylar" /><category term="mobile" /><category term="calendar" /><category term="countdown to I/O 2012" /><category term="google tv" /><category term="courses" /><category term="finance" /><category term="documentation" /><category term="html5" /><category term="gadgets" /><category term="souders" /><category term="documents list api" /><category term="firebug" /><category term="oss devs" /><category term="sketchup" /><category term="storage" /><category term="phone" /><category term="salesforce" /><category term="open source blog" /><category term="Imara" /><category term="hpux" /><category term="css" /><category term="cloud datastore" /><category term="web platform docs" /><category term="weekly roundup" /><category term="performance" /><category term="ocr" /><category term="ajax search" /><category term="bigquery" /><category term="barcodes" /><category term="ODF" /><category term="devfest developer chrome maps social wave apps" /><category term="GDD11" /><category term="cloud storage" /><category term="spa2007" /><category term="kml" /><category term="cifs" /><category term="ubiquity" /><category term="GPE" /><category term="openssl" /><category term="Google Developers Academy" /><category term="goo.gl" /><category term="virtual keyboard" /><category term="cloud sql" /><category term="Vim" /><category term="android" /><category term="soap search api" /><category term="#freeandopen" /><category term="code jam" /><category term="labs" /><category term="interviews" /><category term="kernel summit" /><category term="amarok" /><category term="transit" /><category term="devfest" /><category term="sxsw" /><category term="yahoo" /><category term="gsoc" /><category term="javascript" /><category term="Google Fonts" /><category term="googlewebelements googleio" /><category term="WebP" /><category term="ietf" /><category term="social" /><category term="youtube" /><category term="photos" /><category term="igoogle" /><category term="gdl" /><category term="dart" /><category term="developers" /><category term="Who's at Google I/O" /><category term="browser" /><category term="ajax apis" /><category term="windows" /><category term="oauth" /><category term="oha" /><category term="sitemaps" /><category term="codeedu" /><category term="plone sprint" /><category term="non-profit" /><category term="google apps for your domain" /><category term="narratives" /><category term="internet explorer" /><category term="all for good" /><category term="google code search" /><category term="webmaster" /><category term="games" /><category term="faster web" /><category term="apis. charts" /><category term="prediction api" /><category term="blogger" /><category term="green linux" /><category term="gtags" /><category term="closure tools" /><category term="search" /><category term="chromium" /><category term="developers. meetup" /><category term="hangouts" /><category term="mozilla" /><category term="maps" /><category term="LoCo" /><category term="contextual gadgets" /><category term="open web" /><category term="google+" /><category term="native client" /><category term="ignite" /><category term="Moderator" /><category term="google code project hosting" /><category term="translate" /><category term="shopping" /><category term="picasa web" /><category term="linux virtual server" /><category term="speakers" /><category term="guest post" /><category term="events" /><category term="api" /><category term="google code university" /><category term="book search" /><category term="opensocial" /><category term="chrome" /><category term="google mashup editor" /><category term="objective-c" /><category term="ossjam" /><category term="buzz" /><category term="bootcamp" /><category term="O3D" /><category term="git" /><category term="latitude" /><category term="web performance" /><category term="rails" /><category term="social graph" /><category term="google developer days" /><category term="crisis response" /><category term="gdata" /><category term="video" /><category term="nosql" /><category term="developer" /><category term="campfire one" /><category term="israel" /><category term="sign-in" /><category term="joomladayus2007" /><category term="hg" /><category term="solaris" /><category term="google summer of code" /><category term="khronos" /><category term="googleio" /><category term="getpaid" /><category term="spdy" /><category term="play services" /><category term="gtug" /><category term="lca" /><category term="commerce" /><category term="agpl" /><category term="geo" /><category term="themes" /><category term="dojo" /><category term="dns" /><category term="portugal" /><category term="google cloud storage" /><category term="summer of code" /><category term="Fridaygram" /><category term="rhino" /><category term="chinese" /><category term="random hacks of kindness" /><category term="contacts api" /><category term="subversion" /><category term="feeds" /><category term="#io12" /><category term="zurich" /><category term="education" /><category term="shindig" /><category term="building ajax apps" /><category term="nss" /><category term="webfonts" /><category term="python sprint" /><category term="OCaml" /><category term="github" /><category term="event" /><category term="project hosting" /><category term="google chart api" /><category term="Gmail APIs" /><category term="ZXing" /><category term="chrome apps" /><category term="sixapart" /><category term="google buzz" /><category term="xauth" /><category term="speed tracer" /><category term="haproxy" /><category term="london" /><category term="Google I/O" /><category term="Go" /><category term="KDE" /><category term="speed" /><category term="docs" /><category term="orkut" /><category term="dreamweaver" /><category term="Google Wave" /><category term="apis console" /><category term="google gears" /><category term="syndication" /><category term="gnome women's summer outreach program" /><category term="+1" /><category term="Google" /><category term="Drive" /><category term="googlenew" /><category term="places API" /><category term="payments" /><category term="adsense" /><category term="identity" /><category term="kernel" /><category term="awards" /><category term="gcc" /><category term="EMEA" /><category term="korean" /><category term="joomladayusa" /><category term="custom search" /><category term="templates" /><category term="client libraries" /><category term="openid" /><category term="meetup" /><category term="3d" /><category term="windows programming" /><category term="gwt" /><category term="google apps marketplace" /><category term="pactester" /><category term="fosdem" /><category term="open source" /><category term="freenet" /><category term="google docs" /><category term="firefox" /><category term="py3k" /><category term="#io2013" /><category term="ubucon" /><category term="iphone" /><category term="hackathon" /><category term="accessibility" /><category term="google health" /><category term="conversations" /><category term="danish linux forum" /><category term="tasks API" /><category term="apps script" /><category term="eclipse" /><category term="google web elements" /><category term="books API" /><category term="nonsense" /><category term="chrome web store" /><category term="soc" /><category term="contest" /><category term="apis explorer" /><category term="#io13" /><category term="google apps api" /><category term="MySQL" /><category term="scalability" /><category term="#io2012" /><category term="google developer day" /><category term="security" /><category term="licenses" /><category term="GDE" /><category term="datastore" /><category term="css3" /><category term="Google Drive" /><category term="cloud" /><category term="google web toolkit" /><category term="custom search api" /><category term="webgl" /><category term="caldav" /><category term="chrome os" /><category term="gears" /><category term="posix" /><category term="geolocation" /><category term="tutorials" /><category term="playground" /><category term="pubsubhubbub" /><category term="html" /><category term="linux summit" /><category term="testing" /><category term="OOXML" /><category term="zlib" /><category term="google apps" /><category term="screencast" /><category term="asia" /><category term="sandbox" /><category term="couchdb" /><category term="lessons" /><category term="page speed" /><category term="google data apis" /><category term="joomla" /><category term="apple" /><category term="cricket" /><category term="subscribed links" /><category term="ipad" /><category term="caja" /><category term="evolution" /><category term="gnome" /><category term="chrome extensions" /><category term="linux foundation" /><category term="in-app payments" /><category term="unit test" /><category term="python" /><category term="cms" /><category term="enterprise" /><category term="sites api" /><category term="iiw" /><category term="sidewiki" /><category term="netbsd" /><category term="app engine" /><category term="osi" /><category term="code review" /><category term="apache" /><category term="linux" /><category term="dot net" /><category term="hibernate" /><category term="iguanas" /><category term="authsub" /><category term="cloud services" /><category term="research" /><category term="eclipsecon" /><category term="oscon" /><category term="ajax" /><category term="GDA" /><category term="students" /><category term="programming" /><category term="openajax alliance" /><category term="20% project" /><category term="cloud portability" /><category term="mythtv" /><category term="caption" /><category term="google chrome" /><category term="linuxconf eu" /><category term="about.com" /><category term="plone" /><category term="MacFuse" /><category term="geoserver" /><category term="oscon2007" /><category term="mod_pagespeed" /><category term="KDE 4.0" /><category term="drupal" /><category term="ghop" /><category term="mercurial" /><category term="reader" /><title>Google Developers Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://googledevelopers.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>ewood</name><uri>http://www.blogger.com/profile/12341551220176883769</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>1223</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GDBcode" /><feedburner:info uri="gdbcode" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUMEQ346cCp7ImA9WhBbGE4.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-5806455414225459229</id><published>2013-05-17T16:30:00.000-07:00</published><updated>2013-05-17T16:30:02.018-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-17T16:30:02.018-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="#io13" /><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O" /><title>Google I/O 2013: For the developers</title><content type="html">&lt;a href="https://google.com/+ScottKnaster"&gt;&lt;img alt="Author Photo" height="80" src="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s1600/scottk-1.png" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;/a&gt;&lt;em&gt;By Scott Knaster, &lt;a href="http://googledevelopers.blogspot.com/"&gt;Google Developers Blog&lt;/a&gt; Editor&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;“Google I/O is an annual developer conference featuring highly technical, in-depth sessions, and showcasing the latest from Google's product teams and partners.” &lt;br /&gt;
&amp;nbsp;&amp;nbsp;  – official description&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Google I/O 2013 has just ended, and even more than usual, this one was for you, our &lt;a href="http://www.youtube.com/watch?v=Dr3STRBtTp0"&gt;developers&lt;/a&gt;. This year, we focused on providing new tools and services you’ve been asking for, plus a few surprises that we hope inspired and delighted you.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Android gets its own IDE: &lt;a href="http://android-developers.blogspot.com/2013/05/android-studio-ide-built-for-android.html"&gt;Android Studio&lt;/a&gt;, based on IntelliJ IDEA Community Edition.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://android-developers.blogspot.com/2013/05/social-gaming-location-and-more-in.html"&gt;Google Play Services 3.1&lt;/a&gt; brings &lt;a href="http://googledevelopers.blogspot.com/2013/05/introducing-google-play-game-services.html"&gt;game services&lt;/a&gt;, location APIs, Google Cloud Messaging enhancements, and &lt;a href="http://googledevelopers.blogspot.com/2013/05/cross-platform-sso-technology.html"&gt;Cross-Platform Single Sign On&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;An updated &lt;a href="http://android-developers.blogspot.com/2013/05/new-ways-to-optimize-your-business-in.html"&gt;Google Play Developer Console&lt;/a&gt; adds a very cool app translation service, revenue graphs, alpha and beta testing and staged rollouts, optimization tips, and referral tracking.&lt;/li&gt;
&lt;li&gt;We showed off a &lt;a href="http://googlegeodevelopers.blogspot.com/2013/05/a-fresh-new-look-for-maps-api-for-all.html"&gt;whole new look for Google Maps and Maps APIs&lt;/a&gt;, featuring new base map tiles, a new default marker, a new info window style, and a style refresh for controls.&lt;/li&gt;
&lt;li&gt;In Google Cloud Platform news, we announced that &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/google-compute-engine-is-now-open-to-all.html"&gt;Google Compute Engine is now open to everyone&lt;/a&gt; and has sub-hour billing, we’ve added a &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/app-engine-adds-php-support.html"&gt;PHP runtime to App Engine&lt;/a&gt;, and we introduced &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/get-started-with-google-cloud-datastore-nosql-database.html"&gt;Google Cloud Datastore&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We showed new Google Wallet features: the &lt;a href="http://googlecommerce.blogspot.com/2013/05/fast-and-easy-checkout-for-android-apps.html"&gt;Instant Buy Android API&lt;/a&gt;, which makes buying in native Android apps fast and easy, and the &lt;a href="http://googlecommerce.blogspot.com/2013/05/connect-your-loyalty-programs-offers.html"&gt;Wallet Objects API&lt;/a&gt;, which lets you connect your loyalty programs, offers and more to Google Wallet.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="separator" style="text-align: center;"&gt;&lt;br /&gt;
&lt;a href="https://plus.google.com/u/1/photos/+GoogleDevelopers/albums/5872864614942094113/5878318568050694242?pid=5878318568050694242&amp;oid=111395306401981598462"&gt;&lt;img alt="" src="http://1.bp.blogspot.com/-tF8dlsEfPpg/UZattNpmepI/AAAAAAAAAK8/GENeTO1TwuE/s1600/entrance.JPG" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Although we put developer announcements first this year, we didn’t skimp on the &lt;a href="http://googleblog.blogspot.com/2013/05/live-from-google-io-mo-screens-mo.html"&gt;cool stuff for everyone&lt;/a&gt;: we refreshed the look of the &lt;a href="http://googleplusproject.blogspot.com/2013/05/new-google-stream-hangouts-and-photos.html"&gt;Google+ stream, launched expanded Hangouts, totally revamped Google+ photos&lt;/a&gt;, announced &lt;a href="http://officialandroid.blogspot.com/2013/05/androidio-just-press-play.html"&gt;Google Play Music All Access&lt;/a&gt;, showed off &lt;a href="http://insidesearch.blogspot.com/2013/05/a-multi-screen-and-conversational.html"&gt;conversational search&lt;/a&gt;, and demoed some &lt;a href="http://www.thehobbit.com/middle-earth/"&gt;amazing Chrome Experiments&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Of course, Google I/O isn’t just about announcements. It’s our chance to share what’s new with you in those &lt;em&gt;highly technical, in-depth sessions&lt;/em&gt; and for you to meet and interact with our engineers and other Googlers, in person and via the Internet. Once again this year, all sessions were recorded and are being posted to &lt;a href="https://developers.google.com/live/"&gt;Google Developers Live (GDL)&lt;/a&gt; for you to peruse whenever it’s convenient for you.&lt;br /&gt;
&lt;br /&gt;
We love putting on Google I/O, and that’s one reason we created GDL. With GDL, we don’t have to pack all our presentations into a 3-day conference. You’ll find new programs on GDL every week, from the same people who present at Google I/O. Just like during I/O, you can watch live or see recordings whenever you want. You can &lt;a href="http://www.youtube.com/googledevelopers"&gt;subscribe to the Google Developers channel on YouTube&lt;/a&gt; to be notified when new programs are posted.&lt;br /&gt;
&lt;br /&gt;
Whether you came to San Francisco, participated in &lt;a href="https://developers.google.com/events/io/io-extended"&gt;I/O Extended&lt;/a&gt;, or watched our live streams, we thank you for your attention and dedication. Here’s to Google I/O 2014!&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/ROu8voGRC4o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/5806455414225459229/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/google-io-2013-for-developers.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5806455414225459229?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5806455414225459229?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/ROu8voGRC4o/google-io-2013-for-developers.html" title="Google I/O 2013: For the developers" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s72-c/scottk-1.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>San Francisco, CA, USA</georss:featurename><georss:point>37.7749295 -122.41941550000001</georss:point><georss:box>37.373502 -123.06486250000002 38.176356999999996 -121.77396850000001</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/google-io-2013-for-developers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8AR3s7eip7ImA9WhBaEE0.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-5155906012925873743</id><published>2013-05-16T14:51:00.001-07:00</published><updated>2013-05-19T16:57:26.502-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-19T16:57:26.502-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="app engine" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud platform" /><title>Get started with App Engine for PHP: scalable, secure and reliable</title><content type="html">&lt;img height="80" src="http://3.bp.blogspot.com/-lV4TTiRp1TA/UZUVCWpI3bI/AAAAAAAAAKE/CK7IYtWJilg/s1600/andrew.jessup.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Andrew Jessup, Product Manager&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted from the &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/app-engine-adds-php-support.html"&gt;Google Cloud Platform Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
At &lt;a href="https://developers.google.com/events/io/"&gt;Google I/O&lt;/a&gt;, we announced &lt;a href="https://developers.google.com/appengine/docs/php"&gt;PHP&lt;/a&gt; as the latest supported runtime for &lt;a href="https://cloud.google.com/products/"&gt;Google App Engine&lt;/a&gt; in Limited Preview. PHP is one of the world's most popular programming languages, used by developers to power everything from simple web forms to complex enterprise applications.&lt;br /&gt;
&lt;br /&gt;
Now PHP developers can take advantage of the scale, reliability and security features of App Engine. In addition, PHP runs well with other parts of &lt;a href="https://cloud.google.com/"&gt;Google Cloud Platform&lt;/a&gt;. Let's look at how this works.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Connecting to Google Cloud SQL from App Engine for PHP&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Many PHP developers start with MySQL when choosing a database to store critical information, and a wide variety of products and frameworks such as WordPress make extensive use of MySQL’s rich feature set. Google Cloud SQL provides a reliable, managed database service that is MySQL 5.5 compatible and works well with App Engine.&lt;br /&gt;
&lt;br /&gt;
To set up a Cloud SQL database, sign into &lt;a href="https://cloud.google.com/console"&gt;Google Cloud Console&lt;/a&gt; - create a new project, choose Cloud SQL and create a new instance. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ImmZwPUUzdA/UZSTbDveVFI/AAAAAAAAABg/bnupdin4uk0/s1600/Screen+Shot+2013-05-09+at+9.33.55+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-ImmZwPUUzdA/UZSTbDveVFI/AAAAAAAAABg/bnupdin4uk0/s1600/Screen+Shot+2013-05-09+at+9.33.55+PM.png" height="176" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
After you create the instance, it's automatically associated with your App Engine app.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-P9RXhZfx29A/UZSVdkVYqOI/AAAAAAAAACI/m_oAh4rwqDk/s1600/authorize.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-P9RXhZfx29A/UZSVdkVYqOI/AAAAAAAAACI/m_oAh4rwqDk/s1600/authorize.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
You will notice Cloud SQL instances don’t need an IP address. Instead they can be accessed via a compound identifier made up of their project name and instance name, such as hello-php-gae:my-cloudsql-instance.&lt;br /&gt;
&lt;br /&gt;
From within PHP, you can access Cloud SQL directly using the standard PHP MySQL libraries - mysql, mysqli or PDO_MySQL. Just specify your Cloud SQL database with its identifier, such as:&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php

$db = new PDO(
  'mysql:unix_socket=/cloudsql/hello-php-gae:my-cloudsql-instance;dbname=demo_db;charset=utf8',
  'demo_user',
  'demo_password'
);

foreach($db-&amp;gt;query('SELECT * FROM users') as $row) {
  echo $row['username'].' '.$row['first_name']; //etc...
}
&lt;/pre&gt;Methods such as query() work just as you’d expect with any MySQL database. This example uses the popular PDO library, although other libraries such as mysql and mysqli work just as well.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Storing files with PHP and Google Cloud Storage&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Reading and writing files is a common task in many PHP projects, whether you are reading stored application state, or generating formatted output (e.g., writing PDF files). The challenge is to find a storage system that is as scalable and secure as Google App Engine itself. Fortunately, we have exactly this in Google Cloud Storage (GCS).&lt;br /&gt;
&lt;br /&gt;
The first step in setting up Google Cloud Storage is to create a bucket:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9e0q8xj16Qw/UZST2V047iI/AAAAAAAAABw/gDc7ihSz8mg/s1600/Screen+Shot+2013-05-10+at+1.11.02+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-9e0q8xj16Qw/UZST2V047iI/AAAAAAAAABw/gDc7ihSz8mg/s1600/Screen+Shot+2013-05-10+at+1.11.02+PM.png" height="227" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
With the PHP runtime, we’ve implemented native support for GCS. In particular, we’ve made it possible for PHP’s native filesystem functions to read and write to a GCS bucket.&lt;br /&gt;
&lt;br /&gt;
This code writes all prime numbers less than 2000 into a file on GCS:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php

$handle = fopen('gs://hello-php-gae-files/prime_numbers.txt','w');

fwrite($handle, "2");
for($i = 3; $i &amp;lt;= 2000; $i = $i + 2) {
  $j = 2;
  while($i % $j != 0) {
    if($j &amp;gt; sqrt($i)) {
      fwrite($handle, ", ".$i);
      break;
    }
    $j++;
  }
}

fclose($handle);
&lt;/pre&gt;The same fopen() and fwrite() commands are used just as if you were writing to a local file. The difference is we’ve specified a Google Cloud Storage URL instead of a local filepath. &lt;br /&gt;
&lt;br /&gt;
And this code reads the same file back into memory and pulls out the 100th prime number, using file_get_contents():&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?php

$primes = explode(",",
  file_get_contents('gs://hello-php-gae-files/prime_numbers.txt')
);

if(isset($primes[100]))
  echo "The 100th prime number is ".$primes[100];
&lt;/pre&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt; &lt;b&gt;And more features supported in PHP&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Many of our most popular App Engine APIs are now supported in PHP, including our zero-configuration Memcache, Task Queues for asynchronous processing, Users API, Mail API and more. The standard features you’d expect from App Engine, including SSL support, Page Speed Service, versioning and traffic splitting are all available as well.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Open today in Limited Preview&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://cloud.google.com/appengine/php"&gt;Today we’re making App Engine for PHP available &lt;/a&gt;in Limited Preview. Read more about the runtime in our online documentation, download an early developer SDK, and sign up to deploy applications at &lt;a href="https://cloud.google.com/appengine/php"&gt;https://cloud.google.com/appengine/php&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Andrew Jessup is a Product Manager at Google, working on languages and runtimes for Google App Engine.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/lKHdrRbPNzI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/5155906012925873743/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/get-started-with-app-engine-for-php.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5155906012925873743?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5155906012925873743?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/lKHdrRbPNzI/get-started-with-app-engine-for-php.html" title="Get started with App Engine for PHP: scalable, secure and reliable" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-lV4TTiRp1TA/UZUVCWpI3bI/AAAAAAAAAKE/CK7IYtWJilg/s72-c/andrew.jessup.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>San Francisco, CA, USA</georss:featurename><georss:point>37.7749295 -122.41941550000001</georss:point><georss:box>37.373502 -123.06486250000002 38.176356999999996 -121.77396850000001</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/get-started-with-app-engine-for-php.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQMQXk8fip7ImA9WhBbF0o.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-3268305010998099326</id><published>2013-05-16T09:00:00.000-07:00</published><updated>2013-05-16T23:49:40.776-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-16T23:49:40.776-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cloud datastore" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud platform" /><title>Get started with Google Cloud Datastore - a fast, powerful, NoSQL database</title><content type="html">&lt;img height="80" src="http://2.bp.blogspot.com/-m4cXJmxfPnM/UZUC-eEsLKI/AAAAAAAAAJ4/58RpYXBh2xQ/s1600/photo_7.jpg" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Chris Ramsdale, Product Manager&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted from the &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/get-started-with-google-cloud-datastore-nosql-database.html"&gt;Google Cloud Platform Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;At &lt;a href="https://developers.google.com/events/io/"&gt;Google I/O&lt;/a&gt;, we announced &lt;a href="http://developers.google.com/datastore"&gt;Google Cloud Datastore&lt;/a&gt;, a fully managed solution for storing non-relational data.  Based on the popular Google App Engine High Replication Datastore (HRD), Cloud Datastore provides a schemaless, non-relational datastore with the same accessibility of &lt;a href="https://cloud.google.com/products/cloud-storage"&gt;Google Cloud Storage&lt;/a&gt; and &lt;a href="https://cloud.google.com/products/cloud-sql"&gt;Google Cloud SQL&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Cloud Datastore builds off the strong growth and performance of HRD, which has over 1PB of data stored, 4.5 trillion transactions per month and a 99.95% uptime.  It also comes with the following features:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Built-in query support: near SQL functionality that allows you to search, sort and filter across multiple indexes that are automatically maintained&amp;nbsp;&lt;/li&gt;
&lt;li&gt;ACID transactions: data consistency (both Strong and Eventual) that spans multiple replicas and requests&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Automatic scaling: built on top of Google’s &lt;a href="http://research.google.com/archive/bigtable-osdi06.pdf"&gt;BigTable infrastructure&lt;/a&gt;, the Cloud Datastore will automatically scale with your data&amp;nbsp;&lt;/li&gt;
&lt;li&gt;High availability: by utilizing Google’s underlying &lt;a href="http://www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf"&gt;Megastore&lt;/a&gt; service, the Cloud Datastore ensures that data is replicated across multiple datacenters and is highly available&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Local development environment: the Cloud Datastore SDK provides a full-featured local environment that allows you to develop, iterate and manage your Cloud Datastore instances efficiently&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Free to get started: 50k read &amp;amp; write operations, 200 indexes, and 1GB of stored data for free per month &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;Getting started with Cloud Datastore&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To get started, head over to the &lt;a href="https://cloud.google.com/console"&gt;Google Cloud Console&lt;/a&gt; and create a new project. After supplying a few pieces of information you will have a Cloud Project that has the Cloud Datastore enabled by default. For this post we’ll use the project ID &lt;i&gt;cloud-demo&lt;/i&gt;.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KO38x9zrcU4/UYxVoE04ynI/AAAAAAAAAKw/Ecmq8EYwaO8/s1600/landing_page.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-KO38x9zrcU4/UYxVoE04ynI/AAAAAAAAAKw/Ecmq8EYwaO8/s1600/landing_page.png" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
With the project created and the Cloud Datastore enabled, we’ll need to download the &lt;a href="https://developers.google.com/datastore/docs/downloads"&gt;Cloud Datastore client library&lt;/a&gt;. Once installed, it’s time to start writing some code. For the sake of this post, we’ll focus on accessing the Cloud Datastore from a Python application running on a Compute Engine VM (&lt;a href="http://googlecloudplatform.blogspot.com/2013/05/google-compute-engine-is-now-open-to-all.html"&gt;which is also now in Preview&lt;/a&gt;). We’ll assume that you’ve already created a new VM instance.'  &lt;br /&gt;
&lt;pre&gt;import googledatastore as datastore

def main()
  writeEntity()
  readEntity()
&lt;/pre&gt;Next include writeEntity() and readEntity() functions: &lt;br /&gt;
&lt;pre&gt;def WriteEntity():
  req = datastore.BlindWriteRequest()
  entity = req.mutation.upsert.add()
  path = entity.key.path_element.add()
  path.kind = 'Greeting'
  path.name = 'foo'
  message = entity.property.add()
  message.name = 'message'
  value = message.value.add()
  value.string_value = 'to the cloud and beyond!'
  try:
    datastore.blind_write(req)
  except datastore.RPCError as e:
    # remember to do something useful with the exception pass

def ReadEntity(): 
  req = datastore.LookupRequest()
  key = req.key.add()
  path = key.path_element.add()
  path.kind = 'Greeting0'
  path.name = 'foo0'
  try:
    resp = datastore.lookup(req)
    return resp
  except datastore.RPCError as e:
    # remember to do something useful with the exception pass
&lt;/pre&gt;First create a new file called “demo.py”. Inside demo.py, we’ll add code to write and then read an entity from the Cloud Datastore. &amp;nbsp;Finally we can update main() to print out the property values within the fetched entity: &lt;br /&gt;
&lt;pre&gt;def main()
  writeEntity();
  resp = readEntity();

  entity = resp.found[0].entity
  for p in entity.property:
    print 'Entity property name: %s', p.name
    v = p.value[0]
    print 'Entity property value: %s', v.string_value
&lt;/pre&gt;Before we can run this code we need to tell the SDK which Cloud Datastore instance we would like to use. This is done by exporting the following environment variable: &lt;br /&gt;
&lt;pre&gt;~$ export DATASTORE_DATASET cloud-datastore-demo
&lt;/pre&gt;Finally we’re able to run the application by simply issuing the following:  &lt;br /&gt;
&lt;pre&gt;~$ python demo.py&lt;/pre&gt;Besides the output that we see in console window, we’re also able to monitor our interactions within the Cloud Console. By navigating back to Cloud Console, selecting our cloud-datastore-demo project, and then selecting the Cloud Datastore we’re taken to our instance’s dashboard page that includes number of entities, properties, and property types, as well as index management, ad-hoc query support and breakdown of stored data.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-c-NsVpB1-m0/UZSQMpZXjFI/AAAAAAAAABI/d8Q8SSobNfg/s1600/metrics_page.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-c-NsVpB1-m0/UZSQMpZXjFI/AAAAAAAAABI/d8Q8SSobNfg/s1600/metrics_page.png" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
And that’s really just the beginning. To fully harness the features and functionality that the Cloud Datastore offers, be sure to check out the larger &lt;a href="https://developers.google.com/datastore/docs/getstarted/"&gt;Getting Started Guide&lt;/a&gt; and the &lt;a href="https://developers.google.com/datastore/docs/downloads"&gt;Cloud Datastore documentation&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Cloud Datastore is the latest addition to the Cloud Platform storage family, joining Cloud Storage for storing blob data, Cloud SQL for storing relational data, and Persistent Disk for storing block data.  All fully managed so that you can focus on creating amazing solutions and leave the rest to us.&lt;br /&gt;
&lt;br /&gt;
And while this is a Preview Release, the team is off to a great start. As we move the service towards General Availability we’re looking forward to improving JSON support, more deeply integrating with the Cloud Console, streamlining our billing and driving every bit of performance that we can out of the API and underlying service.&lt;br /&gt;
&lt;br /&gt;
Happy coding!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/111170642690965429119/"&gt;Chris Ramsdale&lt;/a&gt; has worked extensively in the mobile space, starting as a Software Engineer at Motorola in 1997, and then joining local start ups as a Tech Lead and Product Manager. Chris is currently a Product Manager for Google Cloud Platform focused on developer tools and platform services like Google App Engine and Google Cloud Datastore.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/z73nO21Pzek" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/3268305010998099326/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/get-started-with-google-cloud-datastore.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3268305010998099326?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3268305010998099326?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/z73nO21Pzek/get-started-with-google-cloud-datastore.html" title="Get started with Google Cloud Datastore - a fast, powerful, NoSQL database" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-m4cXJmxfPnM/UZUC-eEsLKI/AAAAAAAAAJ4/58RpYXBh2xQ/s72-c/photo_7.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>San Francisco, CA, USA</georss:featurename><georss:point>37.7749295 -122.41941550000001</georss:point><georss:box>37.373502 -123.06486250000002 38.176356999999996 -121.77396850000001</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/get-started-with-google-cloud-datastore.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUMRHs8eyp7ImA9WhBbFks.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-5242554706507585185</id><published>2013-05-15T18:00:00.000-07:00</published><updated>2013-05-15T18:04:45.573-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-15T18:04:45.573-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="google compute engine" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud platform" /><title>Google Compute Engine is now open to all</title><content type="html">&lt;img height="80" src="http://2.bp.blogspot.com/-iNTd-rgFVWg/UZOizm7Hm1I/AAAAAAAAAJo/HJOmdm4FF8w/s1600/njoneja_thumb.jpg" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Navneet Joneja, Product Manager&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted from the &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/google-compute-engine-is-now-open-to-all.html"&gt;Google Cloud Platform Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Last year we announced Google Compute Engine to enable any business or developer to use Google’s infrastructure for their applications. Now we’re taking the next step: &lt;a href="https://cloud.google.com/products/compute-engine"&gt;Google Compute Engine&lt;/a&gt; is open to everyone in preview, and you can &lt;a href="https://cloud.google.com/products/compute-engine"&gt;sign up online&lt;/a&gt; now.&lt;br /&gt;
&lt;br /&gt;
Over the past year, we’ve &lt;a href="http://googlecloudplatform.blogspot.com/2013/04/google-compute-engine-expanded.html"&gt;launched several features&lt;/a&gt; and made significant improvements behind the scenes. We’re now announcing several new capabilities that make it easier and more economical to use Compute Engine for a broader set of applications.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Sub-Hour Billing:&lt;/b&gt; We heard feedback from our early users who wanted more granular billing increments so they could run short-lived workloads. Now all instances are charged for in one-minute increments with a ten-minute minimum, so you don’t pay for compute minutes that you don’t use.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;New shared-core instance types:&lt;/b&gt; Compute Engine’s new micro and small instance types are designed as a cost-effective option for running small workloads that don’t need a lot of CPU power, like development and test workloads.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Larger Persistent Disks:&lt;/b&gt; We’re increasing the size of Persistent Disks that can be attached to instances by up to 8,000%. You can now attach up to 10 terabytes of persistent disk to a Compute Engine virtual machine, giving you plenty of persistent storage for a wide variety of applications.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Advanced Routing Capabilities:&lt;/b&gt; Compute Engine now supports &lt;a href="http://developers.google.com/compute/docs/networking#routing"&gt;software-defined routing capabilities&lt;/a&gt; based on our broad &lt;a href="http://research.google.com/pubs/Networking.html"&gt;SDN innovation&lt;/a&gt;.  These capabilities are designed to handle your advanced network routing needs like configuring instances to function as gateways, configuring VPN servers and building applications that span your local network and Google’s cloud.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ISO 27001 Certification:&lt;/b&gt; We’ve also completed ISO 27001:2005 certification for Compute Engine, App Engine, and Cloud Storage to demonstrate that these products meet the international standard for managing information security.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
To get started, go to the &lt;a href="https://cloud.google.com/console"&gt;Google Cloud Console&lt;/a&gt;, select Compute Engine and click the “New Instance” button.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-woWTOYjKAL8/UZM25Ohe2-I/AAAAAAAAAA0/OtNZfQnIUFo/s1600/png;base6492a3e8c88ed5452e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-woWTOYjKAL8/UZM25Ohe2-I/AAAAAAAAAA0/OtNZfQnIUFo/s1600/png;base6492a3e8c88ed5452e.png" height="320" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Fill out the required information and click “Create” on the right hand side. Your new virtual machine will be ready to use in about a minute.&lt;br /&gt;
&lt;br /&gt;
To all of our customers who helped us evolve the product over the past months, thank you; your feedback has helped shape Compute Engine. To those of you who have been eager to try Compute Engine, the wait is over and you can &lt;a href="https://cloud.google.com/products/compute-engine"&gt;sign up for Compute Engine online&lt;/a&gt; today.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/116502719085908548819/posts"&gt;Navneet Joneja&lt;/a&gt; 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 three-year-old.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/GsDy3YFDyhI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/5242554706507585185/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/google-compute-engine-is-now-open-to-all.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5242554706507585185?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5242554706507585185?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/GsDy3YFDyhI/google-compute-engine-is-now-open-to-all.html" title="Google Compute Engine is now open to all" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-iNTd-rgFVWg/UZOizm7Hm1I/AAAAAAAAAJo/HJOmdm4FF8w/s72-c/njoneja_thumb.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>San Francisco, CA, USA</georss:featurename><georss:point>37.7749295 -122.41941550000001</georss:point><georss:box>37.373509999999996 -123.06486250000002 38.176349 -121.77396850000001</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/google-compute-engine-is-now-open-to-all.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cFR3Y6fSp7ImA9WhBbFkg.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-7684546369252317698</id><published>2013-05-15T14:00:00.000-07:00</published><updated>2013-05-15T16:03:36.815-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-15T16:03:36.815-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="google+" /><category scheme="http://www.blogger.com/atom/ns#" term="sign-in" /><category scheme="http://www.blogger.com/atom/ns#" term="identity" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Cross-Platform SSO technology</title><content type="html">&lt;img height="80" src="http://3.bp.blogspot.com/-ANihFGWuNDQ/UZLdU7OHlnI/AAAAAAAAAJE/iDUl3-dkcDI/s1600/tba+(1).png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Tim Bray, Google Identity Team&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
During the Android portion of the Google I/O keynote, we showed Cross-Platform Single Sign-On; the effect was that for Wallet and Google+ users, signing in to a Web browser resulted in automatic download of, and sign-in to, an Android app.&lt;br /&gt;
&lt;br /&gt;
To support this, we have introduced general-purpose API tools which allow developers to achieve cross-client authentication and authorization, in particular between Android and Web apps. &lt;br /&gt;
&lt;br /&gt;
Not having to sign in repeatedly feels so natural for users that they don’t even notice it.  But as more and more apps deploy this sort of magic, you don’t want to be the hold-out that’s pestering users for passwords on Web sites or, worse, on tiny mobile-device keyboards.&lt;br /&gt;
&lt;br /&gt;
On the Android side, client libraries like &lt;a href="http://developer.android.com/reference/com/google/android/gms/plus/PlusClient.html"&gt;PlusClient&lt;/a&gt;, GamesClient, and WalletClient have “connect” methods that take care of this as automatically as possible; they check whether any of the accounts on the phone have already been authorized for access to the service in question, conduct sign-in if necessary but avoid it if possible, and when they return to your code, everything’s all set up.&lt;br /&gt;
&lt;br /&gt;
If you’re writing server-side code and using libraries like Google+ Sign-In, once again, all the right things happen automatically; when you start accessing the service, the software imposes the minimum necessary pain on the user, ideally zero, and lets you get to work.&lt;br /&gt;
&lt;br /&gt;
Of course, some people want less automation, and finer control over how things work.  If you want to access our services at the HTTP level rather than via a library, or to deal with multiple accounts on an Android device in a customized way, you can do these things and in most cases still deliver the no-sign-in magic.&lt;br /&gt;
&lt;br /&gt;
Of course, this involves working with HTTP message flows, validating tokens, and securing shared secrets.  This may sound intimidating but will be straightforward for one well-versed in HTTP-level Web programming.  If you’re one of those, check out the low-level protocols and APIs that support this, in “&lt;a href="https://developers.google.com/accounts/docs/CrossClientAuth"&gt;Cross-Client Identity&lt;/a&gt;”.&lt;br /&gt;
&lt;br /&gt;
The time is now to start moving your apps towards a sign-in-free future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Tim says: By day, I help in the struggle against passwords on the Internet.&lt;br /&gt;
The rest of my life is fully documented on &lt;a href="https://www.tbray.org/ongoing/"&gt;my blog&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/SIJhOhZck0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/7684546369252317698/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/cross-platform-sso-technology.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7684546369252317698?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7684546369252317698?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/SIJhOhZck0o/cross-platform-sso-technology.html" title="Cross-Platform SSO technology" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ANihFGWuNDQ/UZLdU7OHlnI/AAAAAAAAAJE/iDUl3-dkcDI/s72-c/tba+(1).png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>San Francisco, CA, USA</georss:featurename><georss:point>37.7749295 -122.41941550000001</georss:point><georss:box>37.373498 -123.06486250000002 38.176361 -121.77396850000001</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/cross-platform-sso-technology.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UHQXc_eSp7ImA9WhBaEEQ.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-1555733889218957313</id><published>2013-05-15T12:45:00.000-07:00</published><updated>2013-05-20T17:13:50.941-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-20T17:13:50.941-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="google compute engine" /><category scheme="http://www.blogger.com/atom/ns#" term="app engine" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud datastore" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud storage" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud platform" /><title>Ushering in the next generation of computing at Google I/O</title><content type="html">&lt;img height="80" src="http://2.bp.blogspot.com/-Ud7StrFThoY/UZLnvUg6_2I/AAAAAAAAAJY/NiXRtKbfp7U/s1600/Screen+Shot+2013-05-14+at+6.40.27+PM.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Urs Hölzle, Senior Vice President, Technical Infrastructure, and Google Fellow &lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted from the &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/ushering-in-next-generation-of.html"&gt;Google Cloud Platform Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://developers.google.com/events/io/sessions/333265959"&gt;LIVE - Watch the stream of the Cloud track kickoff now&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Over the last fourteen years we have been developing some of the best infrastructure in the world to power Google’s global-scale services. With &lt;a href="https://cloud.google.com/"&gt;Google Cloud Platform&lt;/a&gt;, our goal is to open that infrastructure and make it available to any business or developer anywhere. Today, we are introducing improvements to the platform and making &lt;a href="https://cloud.google.com/products/compute-engine"&gt;Google Compute Engine&lt;/a&gt; available for anyone to use.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Google Compute Engine - now available for everyone&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Google Compute Engine provides a fast, consistently high-performance environment for running virtual machines. Later today, you’ll be able to go online to cloud.google.com and start using Compute Engine.&lt;br /&gt;
&lt;br /&gt;
In addition, we’re introducing new Compute Engine features:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Sub-hour billing&lt;/b&gt; charges for instances in one-minute increments with a ten-minute minimum, so you don’t pay for compute minutes that you don’t use&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Shared-core instances&lt;/b&gt; provide smaller instance shapes for low-intensity workloads&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Advanced Routing&lt;/b&gt; features help you create gateways and VPN servers, and enable you to build applications that span your local network and Google’s cloud&lt;/li&gt;
&lt;li&gt;Large &lt;b&gt;persistent disks&lt;/b&gt; support up to 10 terabytes per volume, which translates to 10X the industry standard&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
We’ve also completed ISO 27001:2005 international security certification for Compute Engine, &lt;a href="https://cloud.google.com/appengine"&gt;Google App Engine&lt;/a&gt;, and &lt;a href="https://cloud.google.com/products/cloud-storage"&gt;Google Cloud Storage&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Google App Engine adds the PHP runtime&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://code.google.com/p/googleappengine/w/list"&gt;App Engine 1.8.0&lt;/a&gt; is now available and includes a Limited Preview of the &lt;a href="http://cloud.google.com/appengine/php"&gt;PHP runtime&lt;/a&gt; - your &lt;a href="https://code.google.com/p/googleappengine/issues/list"&gt;top requested feature&lt;/a&gt;. We’re bringing one of the most popular web programming languages to App Engine so that you can run open source apps like WordPress. It also offers deep integration with other parts of Cloud Platform including &lt;a href="https://cloud.google.com/products/cloud-sql"&gt;Google Cloud SQL&lt;/a&gt; and Cloud Storage. &lt;br /&gt;
&lt;br /&gt;
We’ve also heard that we need to make building modularized applications on App Engine easier. We are &lt;a href="https://docs.google.com/a/google.com/forms/d/1qjuLxnAHQeq2YQMCMAITbC6St_NrfzHDxrbkuTqvmfY/viewform"&gt;introducing&lt;/a&gt; the ability to partition apps into components with separate scaling, deployments, versioning and performance settings.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Introducing Google Cloud Datastore&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://developers.google.com/datastore"&gt;Google Cloud Datastore&lt;/a&gt; is a fully managed and schemaless solution for storing non-relational data. Based on the popular &lt;a href="https://developers.google.com/appengine/docs/python/datastore/"&gt;App Engine High Replication Datastore&lt;/a&gt;, Cloud Datastore is a standalone service that features automatic scalability and high availability while still providing powerful capabilities such as ACID transactions, SQL-like queries, indexes and more.&lt;br /&gt;
&lt;br /&gt;
Over the last year we have continued our focus on feature enhancement and developer experience across &lt;a href="http://googlecloudplatform.blogspot.com/2013/04/app-engine-177-released_9.html"&gt;App Engine&lt;/a&gt;, &lt;a href="http://googlecloudplatform.blogspot.com/2013/04/google-compute-engine-expanded.html"&gt;Compute Engine,&lt;/a&gt; &lt;a href="http://googledevelopers.blogspot.com/2013/03/bigquery-gets-big-new-features-to-make.html"&gt;Google BigQuery&lt;/a&gt;, &lt;a href="http://googledevelopers.blogspot.com/2012/11/google-cloud-storage-more-value-for.html"&gt;Cloud Storage&lt;/a&gt; and &lt;a href="http://googledevelopers.blogspot.com/2012/11/get-started-at-no-cost-with-faster.html"&gt;Cloud SQL&lt;/a&gt;. We also introduced  &lt;a href="http://googlecloudplatform.blogspot.com/2013/02/java-7-and-cloud-endpoints-preview.html"&gt;Google Cloud Endpoints&lt;/a&gt; and &lt;a href="https://cloud.google.com/console"&gt;Google Cloud Console&lt;/a&gt;.  &lt;br /&gt;
&lt;br /&gt;
With these improvements, we have seen increased usage with over 3 million applications and over 300,000 unique developers using Cloud Platform in a given month. Our developers inspire us everyday, and we can’t wait to see what you build next.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Urs Hölzle is Senior Vice President of Technical Infrastructure and Google Fellow. As one of Google's first ten employees and its first VP of Engineering, he has shaped much of Google's development processes and infrastructure.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/XdmV1eHrgyo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/1555733889218957313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/ushering-in-next-generation-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1555733889218957313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1555733889218957313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/XdmV1eHrgyo/ushering-in-next-generation-of.html" title="Ushering in the next generation of computing at Google I/O" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Ud7StrFThoY/UZLnvUg6_2I/AAAAAAAAAJY/NiXRtKbfp7U/s72-c/Screen+Shot+2013-05-14+at+6.40.27+PM.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>San Francisco, CA, USA</georss:featurename><georss:point>37.7749295 -122.41941550000001</georss:point><georss:box>37.373498 -123.06486250000002 38.176361 -121.77396850000001</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/ushering-in-next-generation-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAEQXg-fyp7ImA9WhBbFkk.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-8686679257122672608</id><published>2013-05-15T12:00:00.000-07:00</published><updated>2013-05-15T12:05:00.657-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-15T12:05:00.657-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="games" /><category scheme="http://www.blogger.com/atom/ns#" term="play services" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Introducing Google Play game services</title><content type="html">&lt;img alt="Author Photo" height="80" src="http://1.bp.blogspot.com/-D0tfkEEK4SU/UZLONTUy00I/AAAAAAAAAIQ/ZHo1rEvej0Q/s1600/greg.hartrell.jpeg" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Greg Hartrell, Lead Product Manager&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
We love to talk about games at Google. Especially the old ones, like Pac-man, Pitfall and Frogger. Since those classics, games have changed a lot. They’ve moved from that clunky box in your living room to the screen that you carry with you in your pocket wherever you go. They’re mobile, they’re social, and they’re an important part of Google Play. &lt;br /&gt;
&lt;br /&gt;
Today, we’re launching Google Play game services, a core part of building a gaming platform for the next generation of games. These services help you make your games more social, with achievements, leaderboards, and multiplayer, as well as more powerful, storing game saves and settings in the cloud. They are available on Android, and many on iOS or any other connected device. By building on Google’s strengths in mobile and cloud services, you can focus on what you’re good at as game developers: creating great gaming experiences for your users.&lt;br /&gt;
&lt;br /&gt;
With game services, you can incorporate:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Achievements&lt;/b&gt; that increase engagement and promote different styles of play.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Social and public leaderboards&lt;/b&gt; that seamlessly use Google+ circles to track high scores across friends and across the world.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Cloud saves&lt;/b&gt; that provide a simple and streamlined storage API to store game saves and settings. Now players never have to replay Level 1 again.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Real-time multiplayer&lt;/b&gt; for easy addition of cooperative or competitive game play on Android devices. Using Google+ Circles, a game can have up to 4 simultaneous friends or auto-matched players in a game session together with support for additional players coming soon.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-DkFKN3BHZ7A/UZLO5H0IIVI/AAAAAAAAAIY/QUnPFp7-GtI/s1600/games.png" imageanchor="1"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-Jd9DJjlO_hE/UZLRFGPRfvI/AAAAAAAAAIo/avG6K6kvdxU/s1600/Screen+Shot+2013-05-14+at+5.03.57+PM.png" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Several great Android games are already using these new game services, including &lt;a href="https://play.google.com/store/apps/details?id=com.twodboy.worldofgoofull"&gt;World of Goo&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.noodlecake.ssg2"&gt;Super Stickman Golf 2&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.vectorunit.yellow"&gt;Beach Buggy Blitz&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.ironhidegames.android.kingdomrush"&gt;Kingdom Rush&lt;/a&gt;, &lt;a href="https://play.google.com/store/apps/details?id=com.glu.ewarriors2"&gt;Eternity Warriors 2&lt;/a&gt;, and &lt;a href="https://play.google.com/store/apps/details?id=com.hemispheregames.osmos"&gt;Osmos&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
And many more titles launch today as well:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qx1Q9DfAa7A/UZLbcbOmgHI/AAAAAAAAAI0/Uvl_xIbfYHE/s1600/Google_Play_Game_Services_Launch_Titles+copy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://1.bp.blogspot.com/-qx1Q9DfAa7A/UZLbcbOmgHI/AAAAAAAAAI0/Uvl_xIbfYHE/s400/Google_Play_Game_Services_Launch_Titles+copy.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Google Play game services are available today through an SDK for Android, and a native iOS SDK for iPhone and iPad games. Web and other platform developers will also find corresponding REST APIs, with libraries for JavaScript, Java, Python, Go, Dart, PHP, and more.&lt;br /&gt;
&lt;br /&gt;
We’re excited to see what games will do with these new services and experiences, and this is only the beginning. Wait until you get to the boss battle... er.. Check out our developer site to get started:  &lt;a href="https://developers.google.com/games/"&gt;https://developers.google.com/games/&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Greg Hartrell is Lead Product Manager on Google Play game services, devoted to helping developers make incredible games through Google Play. In his spare time, he enjoys jumping from platform to platform, boss battles and matching objects in threes.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/punuCmvb_a8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/8686679257122672608/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/introducing-google-play-game-services.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8686679257122672608?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8686679257122672608?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/punuCmvb_a8/introducing-google-play-game-services.html" title="Introducing Google Play game services" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-D0tfkEEK4SU/UZLONTUy00I/AAAAAAAAAIQ/ZHo1rEvej0Q/s72-c/greg.hartrell.jpeg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>San Francisco, CA, USA</georss:featurename><georss:point>37.7749295 -122.41941550000001</georss:point><georss:box>37.373509999999996 -123.06486250000002 38.176349 -121.77396850000001</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/introducing-google-play-game-services.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UGRHg5fSp7ImA9WhBbFEs.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-3180737354622190333</id><published>2013-05-13T10:00:00.000-07:00</published><updated>2013-05-13T10:13:45.625-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-13T10:13:45.625-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="#io2013" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud platform" /><title>Data Sensing Lab at Google I/O 2013: Google Cloud Platform meets the Internet of Things</title><content type="html">&lt;img height="80" src="http://commondatastorage.googleapis.com/manoochehri/manoochehri_80x80.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Michael Manoochehri, Developer Programs Engineer, Google Cloud Platform&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted with the &lt;a href="http://googlecloudplatform.blogspot.com/2013/05/data-sensing-lab-at-google-io-2013.html"&gt;Google Cloud Platform Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
After last year's Google I/O conference, the Google Cloud Platform Developer Relations team started to think about how attendees experienced the event. We wanted to help attendees gain more insight about the conference space and the environment itself. Which developer Sandboxes were the busiest? Which were the loudest locations, and which were the best places to take a quick nap? We think about data problems all the time, and this looked like an interesting big data challenge that we could try to solve. So this year, we decided to try to answer our questions with a project that's a bit different, kind of futuristic, and maybe a little crazy.&lt;br /&gt;
&lt;br /&gt;
Since we love open source hardware hacking as much as we love to share open source code, we decided to team up with the &lt;a href="http://datasensinglab.com/google-io-2013/"&gt;O'Reilly Data Sensing Lab&lt;/a&gt; to deploy hundreds of &lt;a href="http://arduino.cc/"&gt;Arduino&lt;/a&gt;-based environmental sensors at Google I/O 2013. Using software built with the Google Cloud Platform, we'll be collecting and visualizing ambient data about the conference, such as temperature, humidity, air quality, in real time! Altogether, the sensors network will provide over 4,000 continuous data streams over a ZigBee mesh network managed by &lt;a href="http://www.etherios.com/products/devicecloud/"&gt;Device Cloud by Etherios&lt;/a&gt;.&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;br /&gt;
&lt;a href="https://developers.google.com/events/io/sessions/332908798"&gt;&lt;img src="http://3.bp.blogspot.com/-weihm3GwvCw/UY_4wAvSsiI/AAAAAAAAAIA/L80p6PYn0w8/s1600/motes.jpg" alt="photo of sensors" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
In addition, our motes will be able to detect fluctuations in noise level, and some will be attached to footstep counters, to understand collective movement around the conference floor. Of course, since a key goal of Google I/O is to promote innovation in the open, the project's Cloud Platform code, the Arduino hardware designs, and even the data collected, will be open source and available online after the conference.&lt;br /&gt;
&lt;br /&gt;
Google Cloud Platform, which provides the software backend for this project, has a variety of features for building applications that collect and process data from a large number of client devices - without having to spend time managing hardware or infrastructure. &lt;a href="https://developers.google.com/appengine/docs/python/datastore/overview"&gt;Google App Engine Datastore&lt;/a&gt;, along with &lt;a href="https://developers.google.com/appengine/docs/python/endpoints/"&gt;Cloud Endpoints&lt;/a&gt;, provides a scalable front end API for collecting data from devices. &lt;a href="https://cloud.google.com/products/compute-engine"&gt;Google Compute Engine&lt;/a&gt; is used to process and analyse data with software tools you may already be familiar with, such as R and Hadoop. &lt;a href="https://developers.google.com/bigquery/"&gt;Google BigQuery&lt;/a&gt; provides fast aggregate analysis of terabyte datasets. Finally, App Engine's web application framework is able to surface interactive visualizations to users.&lt;br /&gt;
&lt;br /&gt;
Networked sensor technology is in the early stages of revolutionizing business logistics, city planning, and consumer products.  We are looking forward to sharing the Data Sensing Lab with Google I/O attendees, because we want to show how using open hardware together with the Google Cloud Platform can make this technology accessible to anyone.&lt;br /&gt;
&lt;br /&gt;
With the help of the Google Maps DevRel team, we'll be displaying visualizations of interesting trends on several screens around the conference. Members of the Data Sensing Lab will be on hand in the Google I/O Cloud Sandbox to show off prototypes and talk to attendees about open hardware development.  Lead software developer Amy Unruh and Kim Cameron from the Cloud Platform Developer Relations team will talk about how we built the software involved in this project in a talk called "&lt;a href="https://developers.google.com/events/io/sessions/332908798"&gt;Behind the Data Sensing Lab&lt;/a&gt;". In case you aren't able to attend Google I/O 2013, this session will be available online after the conference. Learn more about the &lt;a href="https://cloud.google.com/"&gt;Google Cloud Platform&lt;/a&gt; on our site, and to dive in to building applications, check out our &lt;a href="https://developers.google.com/cloud/"&gt;developer documentation&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/+MichaelManoochehri"&gt;Michael Manoochehri&lt;/a&gt; is a Developer Programs Engineer supporting the Google Cloud Platform. He is passionate about making cloud computing and data analysis universally accessible and useful.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/22y_VyJLeqg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/3180737354622190333/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/data-sensing-lab-at-google-io-2013.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3180737354622190333?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3180737354622190333?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/22y_VyJLeqg/data-sensing-lab-at-google-io-2013.html" title="Data Sensing Lab at Google I/O 2013: Google Cloud Platform meets the Internet of Things" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-weihm3GwvCw/UY_4wAvSsiI/AAAAAAAAAIA/L80p6PYn0w8/s72-c/motes.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/data-sensing-lab-at-google-io-2013.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBQXg-fip7ImA9WhBbEkQ.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-6245697392318705102</id><published>2013-05-11T11:55:00.001-07:00</published><updated>2013-05-11T11:55:50.656-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-11T11:55:50.656-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="youtube" /><category scheme="http://www.blogger.com/atom/ns#" term="apis" /><title>Find the hidden patterns with YouTube’s new Analytics API</title><content type="html">&lt;img alt="Author Photo" height="80" src="http://4.bp.blogspot.com/-X5HPaQ5WvDE/UY6Sw0k2-LI/AAAAAAAAAHw/pg4wOnSWwF0/s1600/ted.png" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Ted Hamilton, YouTube Analytics&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted from the &lt;a href="http://apiblog.youtube.com/2013/05/find-hidden-patterns-with-youtubes-new.html"&gt;YouTube API Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Trying to figure out how YouTube’s &lt;a href="http://youtube-global.blogspot.com/2013/03/onebillionstrong.html"&gt;one billion monthly users&lt;/a&gt; are interacting with your videos? Try the &lt;a href="https://developers.google.com/youtube/analytics/"&gt;new YouTube Analytics API&lt;/a&gt; to get custom reports of the YouTube statistics you care about in a direct JSON or CSV response, perfect for dashboards and ad hoc reports. &lt;br /&gt;
&lt;br /&gt;
The new API includes all the standard &lt;a href="https://developers.google.com/youtube/analytics/v1/dimsmets/mets#View_Metrics"&gt;view&lt;/a&gt; and &lt;a href="https://developers.google.com/youtube/analytics/v1/dimsmets/mets#Engagement_Metrics"&gt;engagement&lt;/a&gt; metrics you would expect, including views, shares, and subscriber numbers. Compared to the previous &lt;a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_insight"&gt;Insight Data API&lt;/a&gt;, you also get:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Watch metrics: Track estimated minutes watched across channel, content owner, or video, and dive into the video details with average view time and average view percentage.&lt;/li&gt;
&lt;li&gt;Earning performance metrics: Track estimated earnings (net revenue) from select advertising sources across your content.&lt;/li&gt;
&lt;li&gt;Ad performance metrics: Break down video performance with monetized playbacks, ad impressions, gross revenue, and cost per impression reports.&lt;/li&gt;
&lt;li&gt;Annotation metrics: Optimize overlays/annotations with click through and close rate metrics.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Client libraries and code samples&lt;/b&gt;&lt;br /&gt;
You’ll find &lt;a href="https://developers.google.com/youtube/analytics/libraries"&gt;client libraries&lt;/a&gt; for the languages you use most, with nine different languages available today. You can also make HTTP RESTful requests directly, and with our &lt;a href="http://developers.google.com/apis-explorer/#p/youtubeAnalytics/v1/youtubeAnalytics.reports.query?ids=channel%3D%3DYOUR_CHANNEL_ID&amp;amp;start-date=2012-01-01&amp;amp;end-date=2013-01-01&amp;amp;metrics=views&amp;amp;_h=2&amp;amp;"&gt;API Explorer&lt;/a&gt;, you can try out sample reports before writing any code.  &lt;br /&gt;
&lt;br /&gt;
Don’t write your code from scratch! Get started with &lt;a href="https://developers.google.com/youtube/analytics/v1/#examples"&gt;code examples&lt;/a&gt; in Java, JavaScript, Python, and Ruby. If you want a step-by-step walkthrough of building a complete web application, have a look at our &lt;a href="https://developers.google.com/youtube/analytics/v1/sample-application"&gt;JavaScript exercise&lt;/a&gt;.  &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;App examples&lt;/b&gt;&lt;br /&gt;
Check out some apps that are already using the API: &lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-3hbydQbL2dQ/UY6Qid9BTGI/AAAAAAAAAHM/14LXs618EOk/s1600/nextbigsound.png"&gt;&lt;img src="http://2.bp.blogspot.com/-3hbydQbL2dQ/UY6Qid9BTGI/AAAAAAAAAHM/14LXs618EOk/s1600/nextbigsound.png" alt="app screen shot" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href="https://www.nextbigsound.com/"&gt;Next Big Sound&lt;/a&gt; provides analytics and insights for the music industry by tracking billions of social signals including YouTube. This enables record labels, artists, and band managers to make better decisions on everything from promotion strategies to tour locations.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vidiq.com/"&gt;vidIQ&lt;/a&gt; is an audience development suite that works with global brands to organically grow their views and subscribers. Their features include cross-platform social analytics, advanced comment management, SEO tools, social syndication and influencer identification.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8Ot8SZ_X8Aw/UY6QiSXDT9I/AAAAAAAAAHI/_cYK1gXPSyA/s1600/Wizdeo.png"&gt;&lt;img src="http://1.bp.blogspot.com/-u1IH80wp4mw/UY6SGLzmsvI/AAAAAAAAAHg/pNmAhpiBanc/s1600/Wizdeo.png" alt="app screen shot" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wizdeo.com/"&gt;Wizdeo’s WizTracker&lt;/a&gt; provides in-depth analysis of YouTube channels to help with cross promotion and video comparisons during their initial launch. Users get access to detailed analytics about views, subscriber engagement, traffic sources and demographics.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vidyard.com/"&gt;Vidyard&lt;/a&gt; is a video marketing platform. With powerful analytics, built-in marketing tools, and integration with key marketing automation platforms, Vidyard helps marketers drive results with video content.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-nywUCgUkoKU/UY6QiHczJ1I/AAAAAAAAAHE/uac83Oo3jrQ/s1600/Fullscreen.png"&gt;&lt;img src="http://1.bp.blogspot.com/-fblrWf-Xy04/UY6SGUgzmzI/AAAAAAAAAHk/aXO99gurG-0/s1600/Fullscreen.png" alt="app screen shot" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://fullscreen.net/"&gt;Fullscreen&lt;/a&gt; is building a global network of YouTube channels with content creators and brands. Fullscreen provides a full suite of end-to-end YouTube tools and uses the new API for internal, business-intelligence tools.  &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Learn more&lt;/b&gt;&lt;br /&gt;
In addition to the &lt;a href="https://developers.google.com/youtube/analytics/"&gt;documentation&lt;/a&gt;, check out our Analytics API &lt;a href="https://www.youtube.com/playlist?list=PLhBgTdAWkxeBaWmqlg-NUTn8f7jbUDAKB&amp;amp;feature=view_all"&gt;playlist&lt;/a&gt; to make getting started even easier.  &lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/WtsS8sEzEeY?list=PLhBgTdAWkxeBaWmqlg-NUTn8f7jbUDAKB" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
If your goal is to export all statistics for a large number of channels on a recurring basis for your data warehouse, look forward to using the upcoming scheduled reports feature of the API, expected to launch later this year.&lt;br /&gt;
&lt;br /&gt;
To get more info on the YouTube APIs, subscribe to our &lt;a href="http://www.youtube.com/user/YouTubeDev"&gt;YouTube for Developers channel&lt;/a&gt; and &lt;a href="https://plus.google.com/+YouTubeDev"&gt;YouTubeDev&lt;/a&gt; on Google+. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/114054307975443559753/posts"&gt;Ted Hamilton&lt;/a&gt; is the Product Manager for YouTube Analytics based out of Zurich, Switzerland. Prior to Google, Ted was a consultant at Bain and Company in London. Ted has a Computer Science degree from Northwestern University and holds an MBA from MIT Sloan. &lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/EDlbZpiiz6s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/6245697392318705102/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/find-hidden-patterns-with-youtubes-new.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6245697392318705102?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6245697392318705102?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/EDlbZpiiz6s/find-hidden-patterns-with-youtubes-new.html" title="Find the hidden patterns with YouTube’s new Analytics API" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-X5HPaQ5WvDE/UY6Sw0k2-LI/AAAAAAAAAHw/pg4wOnSWwF0/s72-c/ted.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/find-hidden-patterns-with-youtubes-new.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EBR346fyp7ImA9WhBbEk8.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-2124870159797059627</id><published>2013-05-10T15:40:00.002-07:00</published><updated>2013-05-10T15:40:56.017-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-10T15:40:56.017-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="students" /><category scheme="http://www.blogger.com/atom/ns#" term="contest" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>The results are in: Hardcode, the secure coding contest for App Engine</title><content type="html">&lt;img alt="Author Photo" height="80" src="http://3.bp.blogspot.com/-bBsoWIwnlwI/UY12hHLr8FI/AAAAAAAAAGs/K_sTNG4YXQA/s1600/photo.16+PM+copy.png" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Eduardo Vela Nava, Security Team&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
This January, Google and SyScan &lt;a href="http://googleonlinesecurity.blogspot.com/2013/01/calling-student-coders-hardcode-secure.html"&gt;announced&lt;/a&gt; a secure coding competition open to students from all over the world. While Google’s &lt;a href="https://developers.google.com/open-source/soc/"&gt;Summer of Code&lt;/a&gt; and &lt;a href="https://developers.google.com/open-source/gci/2012/"&gt;Code-in&lt;/a&gt; encourage students to contribute to open source projects, Hardcode was a call for students who wanted to showcase their skills both in software development and security. Given the scope of today’s online threats, we think it’s incredibly important to practice secure coding habits early on. Hundreds of students from 25 countries and across five continents signed up to receive information about the competition, and over 100 teams participated.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-07AmRAqmlcU/UY1ydT1_qHI/AAAAAAAAAGY/S1jKb9FuIio/s1600/students.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://1.bp.blogspot.com/-07AmRAqmlcU/UY1ydT1_qHI/AAAAAAAAAGY/S1jKb9FuIio/s400/students.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
During the preliminary online round, teams built applications on Google App Engine that were judged for both functionality and security. Five teams were then selected to participate in the final round at the SyScan 2013 security conference in Singapore, where they had to do the following: fix security bugs from the preliminary round, collaborate to develop an API standard to allow their applications to interoperate, implement the API, and finally, try to hack each other’s applications. To add to the challenge, many of the students balanced the competition with all of their school commitments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-itTmX08M0wU/UY1yjMwSNFI/AAAAAAAAAGg/XD2KtdroDnc/s1600/winners.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-itTmX08M0wU/UY1yjMwSNFI/AAAAAAAAAGg/XD2KtdroDnc/s400/winners.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
We’re extremely impressed with the caliber of the contestants’ work. Everyone had a lot of fun, and we think these students have a bright future ahead of them. We are pleased to announce the final results of the 2013 Hardcode Competition:&lt;br /&gt;
&lt;br /&gt;
1st Place:  Team 0xC0DEBA5E&lt;br /&gt;
Vienna University of Technology, Austria (SGD $20,000)&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://proggen.org/"&gt;Daniel Marth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.devlabs.pro/"&gt;Lukas Pfeifhofer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Benedikt Wedenik&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
2nd Place:  Team Gridlock&lt;br /&gt;
Loyola School, Jamshedpur, India (SGD $15,000)&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.aviraldg.com/"&gt;Aviral Dasgupta&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
3rd Place:  Team CeciliaSec&lt;br /&gt;
University of California, Santa Barbara, California, USA (SGD $10,000)&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Nathan Crandall&lt;/li&gt;
&lt;li&gt;Dane Pitkin&lt;/li&gt;
&lt;li&gt;Justin Rushing&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Runner-up:  Team AppDaptor&lt;br /&gt;
The Hong Kong Polytechnic University, Hong Kong (SGD $5,000)&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cwlau.com/"&gt;Lau Chun Wai&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Runner-up:  Team DesiCoders&lt;br /&gt;
Birla Institute of Technology &amp;amp; Science, Pilani, India (SGD $5,000)&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Yash Agarwal&lt;/li&gt;
&lt;li&gt;&lt;a href="http://visheshsinghal.blogspot.com/"&gt;Vishesh Singhal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Honorable Mention: Team Saviors of Middle Earth (withdrew due to school commitments)&lt;br /&gt;
Walt Whitman High School, Maryland, USA&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Wes Kendrick&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maz"&gt;Marc Rosen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;William Zhang&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
A big congratulations to this very talented group of students!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/u/0/100610951871586794452/"&gt;Eduardo Vela Nava&lt;/a&gt; is a Tech Lead for Google's WOOPS (Web or Other Product Security) team, helping teams build safer products.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/uM3SuiF_B6Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/2124870159797059627/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/the-results-are-in-hardcode-secure.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/2124870159797059627?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/2124870159797059627?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/uM3SuiF_B6Y/the-results-are-in-hardcode-secure.html" title="The results are in: Hardcode, the secure coding contest for App Engine" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-bBsoWIwnlwI/UY12hHLr8FI/AAAAAAAAAGs/K_sTNG4YXQA/s72-c/photo.16+PM+copy.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/the-results-are-in-hardcode-secure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUGQX0yfip7ImA9WhBbEkw.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-670572552893823140</id><published>2013-05-10T12:13:00.001-07:00</published><updated>2013-05-10T12:13:40.396-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-10T12:13:40.396-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="apis" /><title>Clarifying the deprecation policy for Google APIs and services</title><content type="html">&lt;img height="80" src="http://2.bp.blogspot.com/-KAQsqp4Llrc/T5FouDNufJI/AAAAAAAABXk/mVssok5VAqI/s1600/adamfeldman.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Adam Feldman, APIs Product Manager&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
We know that deprecation policies can be complex. But it shouldn’t be hard for you to determine which features of our APIs and services are covered by a deprecation policy and which ones aren’t. To date, we’ve often used the label “Experimental” to indicate that certain new versions, features, or functionality don’t have the deprecation policy. But we know you don’t want to hunt through documentation looking for what is “Experimental” and what isn’t.&lt;br /&gt;
&lt;br /&gt;
So starting today, for each API or service that has the deprecation policy, we are creating an explicit list of what is covered by that policy. For instance, here’s what this &lt;a href="https://developers.google.com/maps/maps-api-list"&gt;list&lt;/a&gt; will look like for the Google Maps APIs:&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;br /&gt;
&lt;a href="https://developers.google.com/maps/maps-api-list"&gt;&lt;img src="http://3.bp.blogspot.com/-YOJ8V1fhJ_Y/UY0yoHoggTI/AAAAAAAAAGI/dHEyrD7TcLY/s1600/deprecation.jpg" alt="" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;We are not adding or subtracting anything, but only changing how we display this information to make it easier to locate and understand. This change will be fully rolled out in the coming weeks.  Please refer to each API or service’s terms of service for more information.  We hope this will make your life easier so you get back to your code sooner!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Adam Feldman is a Product Manager, focusing on all of Google's APIs and making sure Google provides the best possible platform to developers.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/CRIkdk3vqac" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/670572552893823140/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/clarifying-deprecation-policy-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/670572552893823140?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/670572552893823140?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/CRIkdk3vqac/clarifying-deprecation-policy-for.html" title="Clarifying the deprecation policy for Google APIs and services" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-KAQsqp4Llrc/T5FouDNufJI/AAAAAAAABXk/mVssok5VAqI/s72-c/adamfeldman.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/clarifying-deprecation-policy-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMAR3s5fCp7ImA9WhBbEU8.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-5981407678997846757</id><published>2013-05-09T11:00:00.000-07:00</published><updated>2013-05-09T11:00:46.524-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-09T11:00:46.524-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="chrome extensions" /><category scheme="http://www.blogger.com/atom/ns#" term="chrome apps" /><title>Building efficient apps and extensions with push messaging</title><content type="html">&lt;img height="80" src="http://1.bp.blogspot.com/-58RsyyDC09M/UYsztCNGwfI/AAAAAAAAAFg/nS7c6l1-E6Y/s1600/mark.scott.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt; &lt;em&gt;By Mark Scott, Product Manager, Chrome&lt;/em&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted from the &lt;a href="http://blog.chromium.org/2013/05/building-efficient-apps-and-extensions.html"&gt;Chromium Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Event pages keep apps and extensions efficient by allowing them to respond to a variety of events such as timers or navigation to a particular site, without having to remain running persistently. But what if you need to respond to something that occurs outside of Chrome, such as a news alert, a message sent to a user or a stock hitting a price threshold? Until now, you had to do this by repeatedly polling a server. This process consumed bandwidth and reduced the battery life of your users’ machines. For a more efficient solution, starting today you can use  &lt;a href="http://developer.chrome.com/apps/cloudMessaging.html"&gt;Google Cloud Messaging for Chrome&lt;/a&gt; (GCM) - across all channels of Chrome.&lt;br /&gt;
&lt;br /&gt;
GCM will be familiar to developers who have used &lt;a href="http://developer.android.com/google/gcm/index.html"&gt;Google Cloud Messaging for Android&lt;/a&gt;. To send a message, all you need to do is:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Request a token (channel ID) via &lt;span style="font-family: Courier New, Courier, monospace;"&gt;chrome.pushMessaging.getChannelId()&lt;/span&gt;.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Pass the returned token to your server.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Whenever you need to send a message to your app or extension, post the message along with the token to the GCM server-side API.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;Your message is then delivered in near real time to Chrome. This makes your event page wake up (if it’s not already running), and the message is delivered to your &lt;span style="font-family: Courier New, Courier, monospace;"&gt;chrome.pushMessaging.onMessage&lt;/span&gt; listener.&lt;br /&gt;
&lt;br /&gt;
&lt;b id="docs-internal-guid-1d91b49d-8758-1047-d55f-a473c419eef5" style="font-weight: normal;"&gt;&lt;img height="265px;" src="https://lh6.googleusercontent.com/AdSrye2SEeY-eMwXEs1sntnJ7vQNqeDsrgIrO_8PlErO0fPU2GhnEkmjNGE1CKqKKmN0ZzDsNv2QQrVsCpYP1Fhq416lCIUxfrgW_8sKz3wnTsIKZFtpBcaQkg" width="498px;" /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To use GCM, your users must be signed into Chrome, as the service relies on an efficient push channel that’s only established for signed-in users.  Messages are automatically delivered to all the devices where the user has signed in and installed your app/extension.&lt;br /&gt;
&lt;br /&gt;
To add GCM to your app/extension, take a look at the &lt;a href="http://developer.chrome.com/apps/cloudMessaging.html"&gt;overview&lt;/a&gt; of the service or start with some of the &lt;a href="https://github.com/GoogleChrome/chrome-app-samples#push-messaging"&gt;sample apps&lt;/a&gt;—and start pushing! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Mark Scott is a Product Manager on the Google Chrome team.  He works with a team in Kirkland on features that make Chrome a great platform for &lt;a href="http://developer.chrome.com/apps/about_apps.html"&gt;building apps&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt; &lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/kzOTREXsh4g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/5981407678997846757/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/building-efficient-apps-and-extensions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5981407678997846757?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5981407678997846757?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/kzOTREXsh4g/building-efficient-apps-and-extensions.html" title="Building efficient apps and extensions with push messaging" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-58RsyyDC09M/UYsztCNGwfI/AAAAAAAAAFg/nS7c6l1-E6Y/s72-c/mark.scott.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/building-efficient-apps-and-extensions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcESXs9cSp7ImA9WhBbEU8.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-8804309877066085408</id><published>2013-05-09T09:00:00.000-07:00</published><updated>2013-05-09T12:16:48.569-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-09T12:16:48.569-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google Drive" /><title>An easier way to save files to Google Drive</title><content type="html">&lt;img alt="Author Photo" height="80" src="http://1.bp.blogspot.com/-2WoX65t1lEY/T3OX7J-DAWI/AAAAAAAABNs/3WziAgfCmv4/s1600/nicolas.png" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Nicolas Garnier, Developer Relations&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
We surf the web for a million different reasons – for everything from school research projects to time-killing memes. And when we find something relevant for us, whether that be our most recent &lt;a href="https://zenpayroll.com/"&gt;pay stub&lt;/a&gt; or just an &lt;a href="http://www.bigstockphoto.com/image-32092616/stock-photo-the-puppy-of-the-spitz-dog-with-and-kitten"&gt;adorably awesome pic&lt;/a&gt;, we may want to save it for later reference or to share with friends in the future.&lt;br /&gt;
&lt;br /&gt;
Starting today, Drive users can use the "Save to Drive" button to do exactly that. The “Save to Drive” button is an easier way to save files directly from a website. If you have your own website, you can improve the experience for your site visitors by adding the “Save to Drive” button to your page using two easy lines of HTML.  &lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-xLNU0FE48fA/UYsoiVMnUPI/AAAAAAAAAFI/XHKOcHcNbIs/s1600/oreilly.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="211" src="http://1.bp.blogspot.com/-xLNU0FE48fA/UYsoiVMnUPI/AAAAAAAAAFI/XHKOcHcNbIs/s400/oreilly.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;i&gt;&lt;span style="font-size: small; text-align: start;"&gt;Saving an ebook to Google Drive from the&amp;nbsp;&lt;/span&gt;&lt;a href="http://oreilly.com/" style="font-size: small; text-align: start;"&gt;O’Reilly website&lt;/a&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Just try it out. Save this cute kitten’s image to Google Drive using the button below:&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-cSl8anK5wPM/UYsoXEr_U8I/AAAAAAAAAE4/76VYx5TVp2M/s1600/kitten.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-cSl8anK5wPM/UYsoXEr_U8I/AAAAAAAAAE4/76VYx5TVp2M/s400/kitten.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;i&gt;&lt;span style="font-size: xx-small; text-align: start;"&gt;Credit:&amp;nbsp;&lt;/span&gt;&lt;a href="http://commons.wikimedia.org/wiki/File:Stray_kitten_Rambo002.jpg" style="font-size: xx-small; text-align: start;"&gt;Krzysztof P. Jasiutowicz&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;script src="https://apis.google.com/js/plusone.js"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;div class="g-savetodrive" data-filename="Stray_Kitten.jpg" data-sitename="Google Developers Blog" data-src="https://cors-files.appspot.com/Stray_Kitten.jpg"&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Adding a Save to Drive button on your website is easy. You simply have to include the script and HTML tag below:&lt;br /&gt;
&lt;pre&gt;&amp;lt;script src="https://apis.google.com/js/plusone.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div class="g-savetodrive"
 data-filename="My Statement.pdf"
 data-sitename="My Company Name"
 data-src="/path/to/myfile.pdf"&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;You can also use the Save to Drive button’s &lt;a href="https://developers.google.com/drive/savetodrive#javascript_api"&gt;JavaScript API&lt;/a&gt;, which allows programmatic and flexible control of the creation of Save to Drive buttons in your web pages.&lt;br /&gt;
&lt;br /&gt;
The Save to Drive button works in the context of the user’s browser. This allows your users to save files that could require some form of HTTP authorization – such as a session cookie – without any special customization from you. In most cases, the Save to Drive button should be simple to integrate, plug-and-play!&lt;br /&gt;
&lt;br /&gt;
Check out some companies that have already added Save to Drive buttons on their sites: &lt;a href="http://www.bigstockphoto.com/"&gt;Bigstock&lt;/a&gt;, &lt;a href="http://www.deltadentalins.com/"&gt;Delta Dental&lt;/a&gt;, &lt;a href="http://fotolia.com/"&gt;Fotolia&lt;/a&gt;, &lt;a href="http://oreilly.com/"&gt;O'Reilly&lt;/a&gt;, &lt;a href="https://www.outboxmail.com/"&gt;Outbox&lt;/a&gt;, &lt;a href="http://www.ultimatesoftware.com/"&gt;Ultimate Software&lt;/a&gt;, and &lt;a href="https://zenpayroll.com/"&gt;Zen Payroll&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-1yOG_TG3sO4/UYsoiQlAevI/AAAAAAAAAFE/-zFr37vUWSE/s1600/delta.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-1yOG_TG3sO4/UYsoiQlAevI/AAAAAAAAAFE/-zFr37vUWSE/s1600/delta.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;i&gt;&lt;span style="font-size: small; text-align: start;"&gt;Saving a dental statement from&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.deltadentalins.com/" style="font-size: small; text-align: start;"&gt;Delta Dental&lt;/a&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PnE1tpC-0Uw/UYsoiRllFOI/AAAAAAAAAFA/dXEf5WCvtW4/s1600/outbox.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-PnE1tpC-0Uw/UYsoiRllFOI/AAAAAAAAAFA/dXEf5WCvtW4/s1600/outbox.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;i&gt;&lt;span style="font-size: small; text-align: start;"&gt;Saving your physical mail to Drive from your&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.outboxmail.com/" style="font-size: small; text-align: start;"&gt;Outbox&lt;/a&gt;&lt;span style="font-size: small; text-align: start;"&gt;&amp;nbsp;account&lt;/span&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
To learn more, have a look at our &lt;a href="https://developers.google.com/drive/savetodrive"&gt;technical documentation&lt;/a&gt;, and if you have questions, don’t hesitate to post on &lt;a href="http://stackoverflow.com/questions/tagged/google-drive-sdk"&gt;Stack Overflow&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/108635752367054807758?rel=author"&gt;Nicolas Garnier&lt;/a&gt; joined Google’s Developer Relations in 2008 and lives in Zurich. He is a Developer Advocate for Google Drive and Google Apps. Nicolas is also the lead engineer for the &lt;a href="https://developers.google.com/oauthplayground/"&gt;OAuth 2.0 Playground&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/VhJMXkPZX1E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/8804309877066085408/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/an-easier-way-to-save-files-to-google.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8804309877066085408?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/8804309877066085408?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/VhJMXkPZX1E/an-easier-way-to-save-files-to-google.html" title="An easier way to save files to Google Drive" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-2WoX65t1lEY/T3OX7J-DAWI/AAAAAAAABNs/3WziAgfCmv4/s72-c/nicolas.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/an-easier-way-to-save-files-to-google.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQHQ3k6fyp7ImA9WhBbEEg.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-4098363160601842143</id><published>2013-05-08T15:32:00.000-07:00</published><updated>2013-05-08T15:32:12.717-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-08T15:32:12.717-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O" /><category scheme="http://www.blogger.com/atom/ns#" term="gdl" /><title>We’re going live from Google I/O</title><content type="html">&lt;img alt="Author Photo" height="80" src="http://2.bp.blogspot.com/-KyJUTVLFL9A/Tc2YI8rTrJI/AAAAAAAAAfM/5qJAs59GW08/s1600/michael_winton.png" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Mike Winton, Director of Developer Relations&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
At &lt;a href="https://developers.google.com/events/io/"&gt;Google I/O 2013&lt;/a&gt;, we will share the future of our platforms with you. Developers from all over the world are the key innovators of powerful, breakthrough technologies, and that’s why we challenged ourselves to make the Google I/O experience available to every developer, everywhere.&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;a href="https://developers.google.com/events/io/"&gt;&lt;img alt="" src="http://2.bp.blogspot.com/-5KimpUpkujM/UYliZSntUzI/AAAAAAAAAEo/50XTM72S5oE/s1600/IO13.png" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="467" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;Watch Google I/O live&lt;/b&gt;&lt;br /&gt;
From the comfort of your own home, office, secret lair, or anywhere you have a reliable Internet connection, you can stream Google I/O May 15-16 live. Brought to you by Google Developers Live (&lt;a href="http://developers.google.com/live"&gt;GDL&lt;/a&gt;), the &lt;a href="http://developers.google.com/io"&gt;Google I/O homepage&lt;/a&gt; will become the &lt;a href="https://developers.google.com/events/io/io-live"&gt;GDL at I/O&lt;/a&gt; live streaming hub starting on May 15th at 9:00 AM PT (16:00 UTC). From this page, you can:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Stream 4 channels of technical content on your computer, tablet, or phone.&lt;/b&gt; You’ll feel like you’re right there in the keynote and session rooms, listening to product announcements straight from the source. Live streaming will run on &lt;a href="http://developers.google.com/io"&gt;developers.google.com/io&lt;/a&gt; from 9 AM PT (16:00 UTC) to 7 PM PT (2:00 UTC) on May 15 and 16.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Watch exclusive interviews with the Googlers behind the latest product announcements.&lt;/b&gt; This year, &lt;a href="http://developers.google.com/live"&gt;GDL&lt;/a&gt; will be on site, broadcasting one-on-one product deep dives, executive interviews, and Sandbox walkthroughs from the GDL stage.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Get the latest news in real-time.&lt;/b&gt; We’ll be posting official announcements during I/O. You’ll be able to see the feed on the &lt;a href="http://developers.google.com/io"&gt;Google I/O homepage&lt;/a&gt;, in the I/O mobile app (coming soon), and on &lt;a href="https://google.com/+GoogleDevelopers"&gt;+Google Developers&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Never miss a session.&lt;/b&gt; All Google I/O technical sessions will be recorded and posted to &lt;a href="http://developers.google.com/live"&gt;GDL&lt;/a&gt; and the &lt;a href="http://www.youtube.com/GoogleDevelopers"&gt;Google Developers YouTube channel&lt;/a&gt;. Subscribe to our YouTube channel for archived session updates.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Live blog the keynote&lt;/b&gt;&lt;br /&gt;
Grab our &lt;a href="https://developers.google.com/events/io/gadget-config"&gt;live blogging gadget&lt;/a&gt; to add the keynote live stream to your own site or blog. Customize the gadget with your site or blog name, live blog alongside real-time Google announcements, and share a dynamic Google I/O experience with your readers. Have questions? For more info, check out our &lt;a href="https://developers.google.com/events/io/gadget-faq"&gt;live blogging gadget FAQ&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Get together locally&lt;/b&gt;&lt;br /&gt;
Experience Google I/O with your local developer community by hosting or attending an &lt;a href="https://developers.google.com/events/io/io-extended"&gt;I/O Extended&lt;/a&gt; event. If you’re hosting, &lt;a href="https://developers.google.com/events/io/io-extended-form"&gt;register here&lt;/a&gt; and learn how to hold a totally epic event with our handy &lt;a href="https://developers.google.com/shared/io/googleio2013-extended-guide.pdf"&gt;Organizer Guide&lt;/a&gt;. Otherwise, with over 400 sites in 90+ countries, chances are good that there is an I/O Extended event near you. &lt;a href="https://developers.google.com/events/io/io-extended"&gt;Find an event now&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
And before I/O, tune in to &lt;a href="http://www.youtube.com/playlist?feature=edit_ok&amp;list=PLOU2XLYxmsILCPnoU1QrY9zdvYoBKyg8v"&gt;Google Developers Live programming&lt;/a&gt; to connect with Google engineers, prep for this year’s event, and browse our archived content. For official conference updates, add &lt;a href="http://google.com/+GoogleDevelopers"&gt;+Google Developers&lt;/a&gt; to your Circles, follow &lt;a href="https://plus.google.com/s/%23io13"&gt;#io13&lt;/a&gt; for big announcements, join the Google I/O community, and keep an eye on &lt;a href="https://developers.google.com/events/io/"&gt;the Google I/O site&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/u/0/+MikeWinton/posts"&gt;Mike Winton&lt;/a&gt; founded and leads Google's global Developer Relations organization. He also enjoys spending time with his family and DJing electronic music.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/t21c2VQz9fA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/4098363160601842143/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/were-going-live-from-google-io.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4098363160601842143?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4098363160601842143?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/t21c2VQz9fA/were-going-live-from-google-io.html" title="We’re going live from Google I/O" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-KyJUTVLFL9A/Tc2YI8rTrJI/AAAAAAAAAfM/5qJAs59GW08/s72-c/michael_winton.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851432 -122.2452126 37.486960200000006 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/were-going-live-from-google-io.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMGRnY7fip7ImA9WhBUFk8.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-5822209908079346369</id><published>2013-05-03T16:07:00.000-07:00</published><updated>2013-05-03T16:07:07.806-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-03T16:07:07.806-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="apis" /><title>Google API infrastructure outage incident report</title><content type="html">&lt;em&gt;By the Google API Infrastructure Team&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;As we &lt;a href="http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure-outage.html"&gt;described in a previous post&lt;/a&gt;, earlier this week we experienced an outage in our API infrastructure. Today we’re providing an incident report that details the nature of the outage and our response.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
The following is the incident report for the Google API infrastructure outage that occurred on April 30, 2013. We understand this service issue has impacted our valued developers and users, and we apologize to everyone who was affected.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Issue Summary&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
From 6:26 PM to 7:58 PM PT, requests to most Google APIs resulted in 500 error response messages.  Google applications that rely on these APIs also returned errors or had reduced functionality.  At its peak, the issue affected 100% of traffic to this API infrastructure. Users could continue to access certain APIs that run on separate infrastructures. The root cause of this outage was an invalid configuration change that exposed a bug in a widely used internal library.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Timeline (all times Pacific Time)&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;6:19 PM: Configuration push begins&lt;/li&gt;
&lt;li&gt;6:26 PM: Outage begins&lt;/li&gt;
&lt;li&gt;6:26 PM: Pagers alerted teams&lt;/li&gt;
&lt;li&gt;6:54 PM: Failed configuration change rollback&lt;/li&gt;
&lt;li&gt;7:15 PM: Successful configuration change rollback&lt;/li&gt;
&lt;li&gt;7:19 PM: Server restarts begin&lt;/li&gt;
&lt;li&gt;7:58 PM: 100% of traffic back online&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Root Cause&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
At 6:19 PM PT, a configuration change was inadvertently released to our production environment without first being released to the testing enviroment. The change specified an invalid address for the authentication servers in production. This exposed a bug in the authentication libraries which caused them to block permanently while attempting to resolve the invalid address to physical services. In addition, the internal monitoring systems permanently blocked on this call to the authentication library.  The combination of the bug and configuration error quickly caused all of the serving threads to be consumed. Traffic was permanently queued waiting for a serving thread to become available. The servers began repeatedly hanging and restarting as they attempted to recover and at 6:26 PM PT, the service outage began.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Resolution and recovery&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
At 6:26 PM PT, the monitoring systems alerted our engineers who investigated and quickly escalated the issue. By 6:40 PM, the incident response team identified that the monitoring system was exacerbating the problem caused by this bug. &lt;br /&gt;
&lt;br /&gt;
At 6:54 PM, we attempted to rollback the problematic configuration change.  This rollback failed due to complexity in the configuration system which caused our security checks to reject the rollback.  These problems were addressed and we successfully rolled back at 7:15 PM.&lt;br /&gt;
&lt;br /&gt;
Some jobs started to slowly recover, and we determined that the overall recovery would be faster by a restart of all of the API infrastructure servers globally.  To help with the recovery, we turned off some of our monitoring systems which were triggering the bug.  As a result, we decided to restart servers gradually (at 7:19 PM), to avoid possible cascading failures from a wide scale restart.  By 7:49 PM, 25% of traffic was restored and 100% of traffic was routed to the API infrastructure at 7:58 PM.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Corrective and Preventative Measures&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In the last two days, we’ve conducted an internal review and analysis of the outage. The following are actions we are taking to address the underlying causes of the issue and to help prevent recurrence and improve response times:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Disable the current configuration release mechanism until safer measures are implemented. (Completed.)&lt;/li&gt;
&lt;li&gt;Change rollback process to be quicker and more robust.&lt;/li&gt;
&lt;li&gt;Fix the underlying authentication libraries and monitoring to correctly timeout/interrupt on errors.&lt;/li&gt;
&lt;li&gt;Programmatically enforce staged rollouts of all configuration changes.&lt;/li&gt;
&lt;li&gt;Improve process for auditing all high-risk configuration options.&lt;/li&gt;
&lt;li&gt;Add a faster rollback mechanism and improve the traffic ramp-up process, so any future problems of this type can be corrected quickly.&lt;/li&gt;
&lt;li&gt;Develop better mechanism for quickly delivering status notifications during incidents.&lt;/li&gt;
&lt;/ul&gt;Google is committed to continually and quickly improving our technology and operational processes to prevent outages. We appreciate your patience and again apologize for the impact to you, your users, and your organization. We thank you for your business and continued support.&lt;br /&gt;
&lt;br /&gt;
Sincerely,&lt;br /&gt;
&lt;br /&gt;
The Google API Infrastructure Team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/dbvC47fstIQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/5822209908079346369/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure-outage_3.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5822209908079346369?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5822209908079346369?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/dbvC47fstIQ/google-api-infrastructure-outage_3.html" title="Google API infrastructure outage incident report" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure-outage_3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQAR389eCp7ImA9WhBUFEg.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-3241081439857108293</id><published>2013-05-01T17:59:00.000-07:00</published><updated>2013-05-01T17:59:06.160-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-01T17:59:06.160-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="apis" /><title>Google API infrastructure outage yesterday</title><content type="html">&lt;img height="80" src="http://3.bp.blogspot.com/-_HPa753_v3k/UYG4P2LPTsI/AAAAAAAAAEY/mboRMNAdY7k/s1600/profile_pic.jpg" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Louis Ryan, Software Engineer&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
We know that developers around the world depend on our APIs for their apps, sites and businesses every day. Unfortunately, we experienced an outage of the Google API serving infrastructure yesterday, April 30. This outage impacted most Google APIs, resulting in requests failing with a 500 error code. Additionally, users may have experienced missing features or capabilities from some Google services that rely on these APIs.&lt;br /&gt;
&lt;br /&gt;
At 6:26 pm Pacific Time, we pushed a config change that inadvertently caused a widespread outage of our API infrastructure.  Our normal rollback procedure failed, delaying the rollback until 7:22 pm, at which time APIs started to recover. The outage was completely resolved by 8:00 pm.&lt;br /&gt;
&lt;br /&gt;
We are making several changes to help ensure this issue won’t happen again. We’ve identified some key improvements to our release and rollback process that we are implementing immediately. Reliability is a top priority at Google, and we are continuously making improvements to our systems. We apologize to everyone who was affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Louis Ryan is an engineer on the API platforms team in Mountain View. Louis is passionate about making APIs faster, more consistent, and reliable.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/KJ0f5PWKsqE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/3241081439857108293/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure-outage.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3241081439857108293?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3241081439857108293?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/KJ0f5PWKsqE/google-api-infrastructure-outage.html" title="Google API infrastructure outage yesterday" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-_HPa753_v3k/UYG4P2LPTsI/AAAAAAAAAEY/mboRMNAdY7k/s72-c/profile_pic.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/google-api-infrastructure-outage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUENRX0-fyp7ImA9WhBUFEw.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-446629058529359332</id><published>2013-05-01T05:50:00.000-07:00</published><updated>2013-05-01T06:08:14.357-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-01T06:08:14.357-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google Fonts" /><title>Download Google fonts to your desktop</title><content type="html">&lt;img height="80" src="http://2.bp.blogspot.com/-lJQK1pPeQww/UYA9xpzDtWI/AAAAAAAAACs/2o5M1-xQxXg/s1600/me-80x80.jpg" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Raziel Alvarez, Google Fonts Team&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
The goal of Google Fonts has always been to bring beautiful, open-source fonts to the web, fast and free of cost. Starting today, you can download these fonts for offline access on your desktop. We’ve made all of the fonts from the Google Fonts directory available in &lt;a href="http://www.fonts.com/web-fonts/google"&gt;SkyFonts&lt;/a&gt;, a tool from &lt;a href="http://www.monotype.com/"&gt;Monotype&lt;/a&gt; that allows you to install and sync fonts from the web onto your Windows or Mac OS X devices.&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;br /&gt;
&lt;a href="http://www.fonts.com/web-fonts/google"&gt;&lt;img src="http://3.bp.blogspot.com/-_zaqY9Dc3R0/UYA8c6fxsbI/AAAAAAAAACg/Ora4Bp6DVE4/s1600/skyfonts.png" alt="" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
SkyFonts automatically updates the fonts installed on your system whenever they are updated on Google Fonts – for example, when new characters are added – ensuring you always have the latest fonts to work with. And with the fonts installed locally, browsing websites that use web fonts will be faster, since your browser won’t have to spend time fetching font data. If you’d rather download the source files to edit the font data directly, you can always do so from the project at &lt;a href="https://code.google.com/p/googlefontdirectory/#Download_Source_Files"&gt;Google Code&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
So whether you’re a designer looking to incorporate popular web fonts into your typography, or you just want to improve your browsing speed by by keeping local, synced copies of fonts, you can take advantage of SkyFonts.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="http://raziel.mx"&gt;Raziel Alvarez&lt;/a&gt; is a software engineer interested in making computing more useful, and usable, through engaging applications and more natural user interfaces. He is part of the Google Fonts Team, responsible for unleashing text by bringing typographical diversity to the Web.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/Qb_Ygfyu8zo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/446629058529359332/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/05/download-google-fonts-to-your-desktop.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/446629058529359332?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/446629058529359332?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/Qb_Ygfyu8zo/download-google-fonts-to-your-desktop.html" title="Download Google fonts to your desktop" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-lJQK1pPeQww/UYA9xpzDtWI/AAAAAAAAACs/2o5M1-xQxXg/s72-c/me-80x80.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/05/download-google-fonts-to-your-desktop.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUMSHsyfSp7ImA9WhBUEE0.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-3645166510217088789</id><published>2013-04-26T13:31:00.000-07:00</published><updated>2013-04-26T13:31:29.595-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-26T13:31:29.595-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fridaygram" /><title>Fridaygram: Transparency Report, billions of bugs, calming doodle</title><content type="html">&lt;a href="https://google.com/+ScottKnaster"&gt;&lt;img height="80" src="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s1600/scottk-1.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;/a&gt;&lt;em&gt;By Scott Knaster, &lt;a href="http://googledevelopers.blogspot.com/"&gt;Google Developers Blog&lt;/a&gt; Editor&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://www.google.com/transparencyreport/"&gt;Google Transparency Report&lt;/a&gt; is designed to point out government censorship, requests to Google for data, and other details about our information services. The &lt;a href="http://googleblog.blogspot.com/2013/04/transparency-report-more-government.html"&gt;newest report&lt;/a&gt;, just out this week, shows that government requests for content removal have reached a new high level, with more than 2200 requests received in the second half of last year.&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;&lt;br /&gt;
&lt;a href="http://googleblog.blogspot.com/2013/04/transparency-report-more-government.html"&gt;&lt;img src="http://4.bp.blogspot.com/-ZrmwKIl_czQ/UXriCZdrD9I/AAAAAAAAACQ/MxyyorUfygY/s1600/transparencyreport.png" alt="" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Government removal requests are probably the best known part of the Transparency Report, but there’s plenty of other fascinating and useful data. For example, you can see information about removal requests for specific URLs from &lt;a href="http://www.google.com/transparencyreport/removals/copyright/"&gt;copyright owners&lt;/a&gt;, or read about the &lt;a href="http://www.google.com/transparencyreport/userdatarequests/legalprocess/"&gt;legal process&lt;/a&gt; that takes place when a government organization or court requests information about a user. You can learn a lot by spending some time with the &lt;a href="http://www.google.com/transparencyreport/"&gt;Transparency Report&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you’re on the U. S. East Coast this spring and summer, you won’t need a report to tell you that &lt;a href="http://news.nationalgeographic.com/news/2013/03/130329-cicadas-coming-sky-locust-swarm-animal-science/"&gt;massive numbers of cicadas&lt;/a&gt; are emerging from their underground homes to breed, fill the skies, annoy countless humans, last a few weeks, then die (and annoy even more humans who have to clean them up). This year’s bunch are &lt;a href="http://en.wikipedia.org/wiki/Magicicada"&gt;&lt;i&gt;Magicicada septendecim&lt;/i&gt;&lt;/a&gt;, or periodical cicadas with a 17-year life cycle. So we can look forward to a similar event in 2030.&lt;br /&gt;
&lt;br /&gt;
Finally, if you haven’t already played with the &lt;a href="http://www.google.com/doodles/earth-day-2013"&gt;Earth Day Doodle&lt;/a&gt; from last Monday, consider taking a few minutes this weekend to enjoy it. You might find yourself mesmerized by the tranquil scene (cicadas not included).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="http://googledevelopers.blogspot.com/search/label/Fridaygram"&gt;Fridaygram&lt;/a&gt; is mostly about fun and informative stuff that’s not related to development, but we &lt;/em&gt;seriously&lt;em&gt; want to congratulate Googlers &lt;a href="http://research.google.com/pubs/author205.html"&gt;Peter Norvig&lt;/a&gt; and &lt;a href="http://googlegreenblog.blogspot.ch/2012/12/an-energetic-welcome-to-arun-majumdar_17.html"&gt;Arun Majumdar&lt;/a&gt; on their election to the &lt;a href="http://www.amacad.org/"&gt;American Academy of Arts and Sciences&lt;/a&gt;. Arun runs Google’s energy strategy as vice president of energy, and Peter is our director of research, although he’s also known for his &lt;a href="http://norvig.com/Gettysburg/"&gt;whimsical take on presentations and technology&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/JBxovz-ZFoU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/3645166510217088789/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/fridaygram-transparency-report-billions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3645166510217088789?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/3645166510217088789?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/JBxovz-ZFoU/fridaygram-transparency-report-billions.html" title="Fridaygram: Transparency Report, billions of bugs, calming doodle" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s72-c/scottk-1.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/fridaygram-transparency-report-billions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04BR3s_fyp7ImA9WhBVGU8.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-6264446979462505348</id><published>2013-04-25T13:00:00.000-07:00</published><updated>2013-04-25T13:32:36.547-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-25T13:32:36.547-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="faster web" /><category scheme="http://www.blogger.com/atom/ns#" term="page speed" /><title>Speed up your sites with PageSpeed for Nginx</title><content type="html">&lt;img height="80" src="http://1.bp.blogspot.com/-kzMNEp_mf5I/UBKZCqNiNkI/AAAAAAAABw0/Qcd46_nMZ-A/s1600/jeff-summer-2012-80x80.jpeg" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Jeff Kaufman, Software Engineer, Make the Web Faster Team&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
When &lt;a href="http://googlewebmastercentral.blogspot.com/2010/11/make-your-websites-run-faster.html"&gt;we released&lt;/a&gt; mod_pagespeed in 2010, we gave webmasters a way to speed up their sites without needing to become web performance optimization experts.  As an Apache module, however, it was unavailable to sites running Nginx, the &lt;a href="http://trends.builtwith.com/Web-Server/nginx"&gt;popular&lt;/a&gt; high performing open source web server that powers many large web sites.  Today that changes: we're releasing PageSpeed Beta for Nginx, aka &lt;a href="https://developers.google.com/speed/pagespeed/ngx"&gt;ngx_pagespeed&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Running as a module inside Nginx, ngx_pagespeed rewrites your webpages to make them faster for your users.  This includes compressing images, minifying CSS and JavaScript, extending cache lifetimes, and many other web performance &lt;a href="https://developers.google.com/speed/docs/best-practices/rules_intro"&gt;best practices&lt;/a&gt;.  All of mod_pagespeed's &lt;a href="https://developers.google.com/speed/docs/mod_pagespeed/filters"&gt;optimization filters&lt;/a&gt; are now available to Nginx users.&lt;div class="separator" style="text-align: center;"&gt;&lt;br /&gt;
&lt;a href="https://developers.google.com/speed/pagespeed/ngx"&gt;&lt;img src="http://3.bp.blogspot.com/-g4JCZoSz5RQ/UXmJ0Fe_9vI/AAAAAAAAACA/R3FDL8TL5og/s1600/04_ngx_pagespeed.png" alt="ngx_pagespeed logo" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="401" /&gt;&lt;/a&gt;&lt;/div&gt;After three months of alpha testing on hundreds of sites, ngx_pagespeed has proven its ability to serve production traffic.  It's ready for beta, and it's ready for you to &lt;a href="https://github.com/pagespeed/ngx_pagespeed"&gt;start using it&lt;/a&gt; on your site.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.maxcdn.com/"&gt;MaxCDN&lt;/a&gt;, a content delivery network provider, recently published a &lt;a href="http://blog.netdna.com/developer/nginx-performance-tips-with-the-google-pagespeed-team/"&gt;blog post&lt;/a&gt; on their experience testing ngx_pagespeed: “With PageSpeed enabled, we shaved 1.57 seconds from our average page load, dropped our bounce rate by 1%, and our exit percentage by 2.5%. In sum, we squeezed out extra performance with nothing but a few extra lines in our nginx config files... We are continuing to test the module with the PageSpeed team, and our goal is to make it available across our CDN and to all of our customers – stay tuned!”&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://www.zippykid.com/"&gt;ZippyKid&lt;/a&gt;, a popular WordPress hosting provider, is also one of the &lt;a href="https://www.zippykid.com/2013/04/23/partnership-with-google-to-deliver-fast-wordpress-sites/"&gt;early beta testers&lt;/a&gt; of ngx_pagespeed: “PageSpeed for ZippyKid is the world’s first WordPress optimization service powered by ngx_pagespeed, designed to automatically apply web performance best practices to deliver fast WordPress sites. Our benchmarks indicate that PageSpeed for ZippyKid will deliver up to a 75% reduction in page sizes and a 50% improvement in page rendering speeds.”&lt;br /&gt;
&lt;br /&gt;
Development of ngx_pagespeed is &lt;a href="https://github.com/pagespeed/ngx_pagespeed"&gt;open source&lt;/a&gt;, with contributions by developers from &lt;a href="https://www.google.com/intl/en/about/"&gt;Google&lt;/a&gt;, &lt;a href="http://tengine.taobao.org/"&gt;Taobao&lt;/a&gt;, &lt;a href="http://www.we-amp.com/"&gt;We-Amp&lt;/a&gt;, and many other individual volunteers.  Thanks everyone for helping us reach the Beta milestone!&lt;br /&gt;
&lt;br /&gt;
To start using ngx_pagespeed, follow the installation instructions on &lt;a href="https://github.com/pagespeed/ngx_pagespeed"&gt;GitHub&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="http://www.jefftk.com/"&gt;Jeff Kaufman&lt;/a&gt; works on &lt;a href="https://developers.google.com/speed/pagespeed/"&gt;PageSpeed&lt;/a&gt;, an open-source server module that helps &lt;a href="https://developers.google.com/speed/"&gt;make the web faster&lt;/a&gt;, and is interested in experiment measurement.  He also &lt;a href="http://freeraisins.com/"&gt;plays&lt;/a&gt; for &lt;a href="http://www.youtube.com/watch?v=vMr7HcS_orc"&gt;contra dances&lt;/a&gt;, organizes &lt;a href="http://bidadance.org/"&gt;other&lt;/a&gt; &lt;a href="http://www.jefftk.com/davis.html"&gt;dances&lt;/a&gt;, and &lt;a href="http://www.jefftk.com/news/"&gt;blogs&lt;/a&gt; about &lt;a href="http://www.jefftk.com/news/contra.html"&gt;dancing&lt;/a&gt;, &lt;a href="http://www.jefftk.com/news/giving.html"&gt;giving&lt;/a&gt;, and &lt;a href="http://www.jefftk.com/news/tech.html"&gt;tech&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/RHlf6hStZT0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/6264446979462505348/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/speed-up-your-sites-with-pagespeed-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6264446979462505348?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/6264446979462505348?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/RHlf6hStZT0/speed-up-your-sites-with-pagespeed-for.html" title="Speed up your sites with PageSpeed for Nginx" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-kzMNEp_mf5I/UBKZCqNiNkI/AAAAAAAABw0/Qcd46_nMZ-A/s72-c/jeff-summer-2012-80x80.jpeg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/speed-up-your-sites-with-pagespeed-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08BQHY-eip7ImA9WhBVGEw.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-7090469587368857033</id><published>2013-04-24T06:57:00.001-07:00</published><updated>2013-04-24T06:57:31.852-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-24T06:57:31.852-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dart" /><title>Learn the Dart language and libraries with these 11 short videos</title><content type="html">&lt;img alt="Author Photo" height="80" src="http://3.bp.blogspot.com/-Pqf_3g3747k/UXd1qQsSA_I/AAAAAAAAABw/yEA6AhvCdnY/s1600/seth.ladd.jpg" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;em&gt;By Seth Ladd, Developer Advocate&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes, you only have 5 minutes. Luckily, with the &lt;a href="http://www.dartlang.org/dart-tips/"&gt;Dart Tips&lt;/a&gt; series of short video tutorials, that's all you need to start learning the new Dart language and libraries. In these videos, I show off code samples and examples across the various language features of Dart.&lt;br /&gt;
&lt;br /&gt;
For example, here's a quick demo of the various types of constructors in Dart:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/k2R_HwZzogQ" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
You can check out &lt;a href="http://www.dartlang.org/dart-tips/"&gt;all the videos&lt;/a&gt;, or jump to the topic that most interests you:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-1.html"&gt;A simple Dart script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-2.html"&gt;Runtime modes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-3.html"&gt;Variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-4.html"&gt;Strings, numbers, booleans, oh my!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-5.html"&gt;Collections in Dart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-6.html"&gt;Functions are fun, Pt 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-7.html"&gt;Functions are fun, Pt 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-8.html"&gt;Control flow statements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-9.html"&gt;Exceptions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-10.html"&gt;Classes: setters &amp;amp; getters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dartlang.org/dart-tips/dart-tips-ep-11.html"&gt;Classes: Constructors&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;We hope you enjoy these videos about &lt;a href="http://www.dartlang.org/"&gt;Dart&lt;/a&gt;. If you have questions or comments about the videos, or Dart, please join us on the &lt;a href="http://www.dartlang.org/mailing-list"&gt;Dart mailing list&lt;/a&gt; and on &lt;a href="http://google.com/+dartlang"&gt;Google+&lt;/a&gt;. As we say on Dart Tips, &lt;i&gt;stay sharp&lt;/i&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="http://google.com/+SethLadd"&gt;Seth Ladd&lt;/a&gt; is a Developer Advocate on Dart. He's a web engineer, book author, a conference organizer, and loves a game of badminton.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/QufyLywBQ4U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/7090469587368857033/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/learn-dart-language-and-libraries-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7090469587368857033?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7090469587368857033?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/QufyLywBQ4U/learn-dart-language-and-libraries-with.html" title="Learn the Dart language and libraries with these 11 short videos" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Pqf_3g3747k/UXd1qQsSA_I/AAAAAAAAABw/yEA6AhvCdnY/s72-c/seth.ladd.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/learn-dart-language-and-libraries-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMDQHg9fip7ImA9WhBVFkg.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-4919045551244364869</id><published>2013-04-22T12:21:00.000-07:00</published><updated>2013-04-22T12:21:11.666-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-22T12:21:11.666-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="gsoc" /><title>A new kind of summer job: open source coding with Google Summer of Code</title><content type="html">
&lt;em&gt;By Stephanie Taylor, Open Source team&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;i&gt;Cross-posted from the &lt;a href="http://googleblog.blogspot.com/2013/04/a-new-kind-of-summer-job-open-source.html"&gt;Official Google Blog&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
If you’re a university student with CS chops looking to earn real-world experience this summer, consider writing code for a cool open source project with the &lt;a target="blank" href="https://developers.google.com/open-source/soc/"&gt;Google Summer of Code&lt;/a&gt; program.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-NyzQrqjCCNo/UXB6e48WgHI/AAAAAAAAAM0/BaUmAKOuQRw/s1600/GSoC+2013+logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="170" src="http://1.bp.blogspot.com/-NyzQrqjCCNo/UXB6e48WgHI/AAAAAAAAAM0/BaUmAKOuQRw/s320/GSoC+2013+logo.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Over the past eight years more than 6,000 students have “graduated” from this global program, working with almost 400 different open source projects. Students who are accepted into the program will put the skills they have learned in university to good use by working on an actual software project over the summer. Students are paired with mentors to help address technical questions and concerns throughout the course of the project. With the knowledge and hands-on experience students gain during the summer they strengthen their future employment opportunities in fields related to their academic pursuits. Best of all, more source code is created and released for the use and benefit of all.&lt;br /&gt;
&lt;br /&gt;
Interested students can submit proposals on the &lt;a target="blank" href="http://www.google-melange.com/gsoc/homepage/google/gsoc2013"&gt;website&lt;/a&gt; starting now through Friday, May 3 at 12:00pm PDT. Get started by reviewing the ideas pages of the &lt;a target="blank" href="http://www.google-melange.com/gsoc/accepted_orgs/google/gsoc2013"&gt;177 open source projects&lt;/a&gt; in this year’s program, and decide which projects you’re interested in. Because Google Summer of Code has a limited number of spots for students, writing a great project proposal is essential to being selected to the program. Be sure to check out the &lt;a target="blank" href="http://www.booki.cc/gsocstudentguide/"&gt;Student Manual&lt;/a&gt; for advice.&lt;br /&gt;
&lt;br /&gt;
For ongoing information throughout the application period and beyond, see the &lt;a target="blank" href="http://google-opensource.blogspot.com/"&gt;Google Open Source blog&lt;/a&gt;, join our Summer of Code &lt;a target="blank" href="http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#1._What_are_the_program_mailing_lists"&gt;mailing lists&lt;/a&gt; or join us on Internet relay chat at #gsoc on &lt;a target="blank" href="http://freenode.net/"&gt;Freenode&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Good luck to all the open source coders out there, and remember to submit your proposals early—you only have until May 3 to apply!&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Written by Stephanie Taylor, Open Source team&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/CCCt5Z5r6FM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/4919045551244364869/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/a-new-kind-of-summer-job-open-source.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4919045551244364869?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/4919045551244364869?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/CCCt5Z5r6FM/a-new-kind-of-summer-job-open-source.html" title="A new kind of summer job: open source coding with Google Summer of Code" /><author><name>Scott Knaster</name><uri>https://plus.google.com/116954523003757714329</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-NyzQrqjCCNo/UXB6e48WgHI/AAAAAAAAAM0/BaUmAKOuQRw/s72-c/GSoC+2013+logo.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/a-new-kind-of-summer-job-open-source.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYERn8yfyp7ImA9WhBVE0w.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-7443037032672562475</id><published>2013-04-18T11:04:00.000-07:00</published><updated>2013-04-18T12:41:47.197-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-18T12:41:47.197-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="faster web" /><category scheme="http://www.blogger.com/atom/ns#" term="page speed" /><title>PageSpeed Service makes mobile sites faster</title><content type="html">&lt;img height="80" src="http://2.bp.blogspot.com/-8aAyQECty0E/UXA0-ucNMrI/AAAAAAAACqE/47kxEGVPXAg/s1600/ramani.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;br /&gt;
&lt;em&gt;By Ram Ramani, Engineering Manager&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://developers.google.com/speed/pagespeed/service"&gt;PageSpeed Service&lt;/a&gt; (PSS) is an online service to speed up the rendering of your web pages by rewriting and serving them through Google. While PSS’s optimization techniques benefit most platforms and browsers, today I’d like to focus on some of the PSS rewriters that are especially effective on mobile web pages.  PageSpeed Service optimizes the web pages in such a way that users can start viewing and interacting with your pages as soon as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/iGfDTde9c0Y" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://developers.google.com/speed/docs/pss/PrioritizeCriticalCSS"&gt;Prioritize Critical CSS&lt;/a&gt;: To avoid page reflows, modern browsers do not render pages until the CSS is downloaded and parsed. These CSS files are often tens of KBs because they include all the styles needed for the entire site. These blocking requests are especially bad on mobile devices, where network round trip times are high. The Prioritize Critical CSS rewriter speeds up rendering by identifying the minimal CSS required to render that page and including it in the HTML file. This not only saves an extra round trip to download additional files but also reduces the CPU consumed by the browser. Finally, a reference to the original CSS file is included at the end of the page to lazy-load the non-critical CSS.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://developers.google.com/speed/docs/pss/DeferJavaScript"&gt;Defer JavaScript&lt;/a&gt;: The HTML specification requires the browser to stop, download, and execute each synchronous JavaScript file before proceeding to build and render the page - this requirement can significantly slow down rendering. PSS circumvents this behavior by rewriting the HTML to defer execution of all JavaScript until after the page is first rendered. This benefits pages that are mostly rendered via HTML markup rather than JavaScript.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://developers.google.com/speed/docs/pss/OptimizeImages"&gt;Optimize Images&lt;/a&gt;: Mobile screens are almost always smaller than their desktop counterparts. Large, high quality images translate to excessive bytes on the wire, slowing down page loads. PSS can resize images on the server to fit required dimensions and re-compress them to the optimal format, without perceptible visual loss. For very large images above the fold, PSS can also inline a low quality preview image for initial rendering. Once the rest of the page content loads, it is replaced by the original image, creating a seamless experience. Furthermore, images below the fold can be lazy-loaded, which prevents them from competing with the rest of the page load.&lt;br /&gt;
&lt;br /&gt;
PageSpeed Service includes &lt;a href="https://developers.google.com/speed/docs/pss/rewriters"&gt;several rewriters&lt;/a&gt; that speed up the rendering of web pages.  Using PageSpeed Service, the mobile pages of &lt;a href="http://www.topnewstoday.org/"&gt;TopNewsToday&lt;/a&gt; and &lt;a href="http://www.net1news.org/"&gt;Net1News&lt;/a&gt; are now &lt;a href="http://www.webpagetest.org/video/view.php?id=130410_54af1e5a95d913bbb5769eda5bd47c90851f444c"&gt;61% faster&lt;/a&gt; and &lt;a href="http://www.webpagetest.org/video/view.php?id=130410_ccd71f71ec00fb0b048a99d32de902f905a2f318"&gt;68% faster&lt;/a&gt; respectively. Alex Tsvetanov of TopNews Today says, “With Google PageSpeed Service, we increased our unique visitors and total pageviews by 100%, while reducing our bounce rate by 30%”. Massimo Romanello, CEO of Net1News says, "Thanks to Google PageSpeed Service, we have been able to reach 200,000 unique daily visitors with the same existing infrastructure and have made our site one of the quickest in the news sector".&lt;br /&gt;
&lt;br /&gt;
PageSpeed takes just a few minutes to set up and requires no code changes on your site. &lt;a href="http://www.webpagetest.org/compare?mobile=1&amp;aggressive=1"&gt;Check out&lt;/a&gt; how much PageSpeed can speed up your site. I encourage you to try out these features by &lt;a href="https://docs.google.com/a/google.com/spreadsheet/embeddedform?formkey=dDdjcmNBZFZsX2c0SkJPQnR3aGdnd0E6MQ"&gt;signing up&lt;/a&gt; for PageSpeed Service and letting us know what you think at &lt;a href="mailto:page-speed-service-discuss@googlegroups.com"&gt;page-speed-service-discuss@googlegroups.com&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;a href="https://plus.google.com/103427061100906911694/about"&gt;Ram Ramani&lt;/a&gt; is an Engineering Manager on the Make the Web Faster Team in Mountain View. He is a believer in "Faster is better".&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://google.com/+ScottKnaster"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/z_svVP0VmRk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/7443037032672562475/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/pagespeed-service-makes-mobile-sites.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7443037032672562475?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/7443037032672562475?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/z_svVP0VmRk/pagespeed-service-makes-mobile-sites.html" title="PageSpeed Service makes mobile sites faster" /><author><name>Emily Wood</name><uri>https://plus.google.com/112374322230920073195</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-8aAyQECty0E/UXA0-ucNMrI/AAAAAAAACqE/47kxEGVPXAg/s72-c/ramani.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851432 -122.2452126 37.486960200000006 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/pagespeed-service-makes-mobile-sites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MDQ3k9eCp7ImA9WhBWGE0.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-5992106519796201218</id><published>2013-04-12T15:24:00.001-07:00</published><updated>2013-04-12T15:24:32.760-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-12T15:24:32.760-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fridaygram" /><title>Fridaygram: fiber marches on, your brain on music, Earth from orbit</title><content type="html">&lt;a href="https://plus.google.com/u/0/105627346610764729807/posts"&gt;&lt;img height="80" src="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s1600/scottk-1.png" alt="Author Photo" style="float: right; margin-left: 1em; text-align: right;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;By Scott Knaster, &lt;a href="http://googledevelopers.blogspot.com/"&gt;Google Developers Blog&lt;/a&gt; Editor&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Just about two years ago, we said that &lt;a href="http://googleblog.blogspot.com/2011/03/ultra-high-speed-broadband-is-coming-to.html"&gt;Kansas City would be the first place&lt;/a&gt; to get very high speed Internet access from the Google Fiber project. This week we announced that &lt;a href="http://googleblog.blogspot.com/2013/04/google-fibers-next-stop-austin-texas.html"&gt;Austin, Texas will be the next location&lt;/a&gt; for Google Fiber. Like Kansas City, customers in Austin will be able to get gigabit Internet and Google Fiber TV service. Many schools, hospitals, and other public buildings in Austin will get gigabit Internet at no charge.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/lALafkdBLTA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
If you live in Austin or Kansas City, and you want to find out more, take a look at the &lt;a href="https://fiber.google.com/about/"&gt;Google Fiber website&lt;/a&gt;. Or maybe you’ll want to plan to move to one of those cities.&lt;br /&gt;
&lt;br /&gt;
Speaking of moving, the next time you’re moved by music, you might be interested to know what’s going on in your brain. &lt;a href="http://www.sciencenews.org/view/generic/id/349594/description/Mental_puzzles_underlie_musics_delight"&gt;Recent research shows&lt;/a&gt; that when people like a new song, the &lt;a href="http://en.wikipedia.org/wiki/Nucleus_accumbens"&gt;nucleus accumbens&lt;/a&gt; becomes active, while other parts of the brain work on pattern-matching and emotional connections. The more complex the activity among these various brain regions, the more the brain's owner likes a song, according to the research. Scientists are hoping to use this work to learn more about how we process all kinds of sounds, not just cool new tunes.&lt;br /&gt;
&lt;br /&gt;
Finally, take some time this weekend to watch this amazing &lt;a href="http://www.youtube.com/watch?v=sckOSMf-LpY#!"&gt;NASA video of Earth from orbit&lt;/a&gt;. It’s part of &lt;a href="http://en.wikipedia.org/wiki/NASA"&gt;NASA&lt;/a&gt;’s &lt;a href="http://www.nasa.gov/topics/earth/earthmonth/"&gt;Earth month&lt;/a&gt;, which includes a bunch of other images of our favorite planet that are also fun to look at. It’s sure to light up your brain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;With all its interplanetary travel, it’s nice of NASA to have a month just for us earthlings. And here on the blog, we’re happy to have &lt;a href="http://googledevelopers.blogspot.com/search/label/Fridaygram"&gt;Fridaygrams&lt;/a&gt;, which allow us to depart temporarily from developer world and just feature some random, nerdy, science-y stuff instead.&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/M36Hs2X8YmI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/5992106519796201218/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/fridaygram-fiber-marches-on-your-brain.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5992106519796201218?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/5992106519796201218?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/M36Hs2X8YmI/fridaygram-fiber-marches-on-your-brain.html" title="Fridaygram: fiber marches on, your brain on music, Earth from orbit" /><author><name>Emily Wood</name><uri>https://plus.google.com/112374322230920073195</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-zuKki-wX6-w/Tuuip-vap8I/AAAAAAAAA78/BqFcmzSEsDA/s72-c/scottk-1.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Mountain View, CA, USA</georss:featurename><georss:point>37.3860517 -122.0838511</georss:point><georss:box>37.2851427 -122.2452126 37.486960700000004 -121.9224896</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/fridaygram-fiber-marches-on-your-brain.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYCQnwycSp7ImA9WhBWEUQ.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-1051253249610981032</id><published>2013-04-05T13:36:00.000-07:00</published><updated>2013-04-05T13:36:03.299-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-05T13:36:03.299-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fridaygram" /><title>Fridaygram: April foolery, ripping planets, and dream readers</title><content type="html">&lt;img height="80" src="http://4.bp.blogspot.com/-qDrWcKYRcaw/T9uHYe9JBQI/AAAAAAAAAds/7ZrH6pXANjc/s400/IMG_20120112_130505%2B%25281%2529.jpg" alt="Author Picture" style="float: right; margin-left: 1em; text-align: right;" /&gt;
&lt;em&gt;By &lt;a href="https://plus.google.com/107757668297288466839/about"&gt;Ashleigh Rentz&lt;/a&gt;, Google Developers Blog Editor Emerita&lt;/em&gt;

&lt;p&gt;With all of this week’s developer news, it’s easy to forget that Monday was &lt;a href="http://en.wikipedia.org/wiki/April_Fools'_Day"&gt;April Fools’ day&lt;/a&gt;. As usual, Googlers channeled their playful spirits into creative new “features” for many of our products.  Did you spot them all?  Wikipedia has a &lt;a href="http://en.wikipedia.org/wiki/List_of_Google's_hoaxes_and_easter_eggs#2013"&gt;recap list&lt;/a&gt;, featuring Google Trends’ “&lt;a href="http://www.google.com/trends/coldtrends"&gt;Cold Searches&lt;/a&gt;” (discover new unique things that nobody else is into!) and Google Analytics’ export support for even more &lt;a href="http://analytics.blogspot.com/2013/04/updating-export-and-send-features-to.html"&gt;external media options&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After we stopped fooling around, &lt;a href="http://www.space.com/"&gt;space.com&lt;/a&gt; got serious and shared this &lt;a href="http://www.youtube.com/watch?v=20ZC1_pJEEg"&gt;animated sequence&lt;/a&gt; of what astronomers have observed happening to a massive gas giant planet somewhere around 20 times the size of Jupiter: a &lt;em&gt;super&lt;/em&gt;massive black hole 300,000 times the size of our sun has been &lt;a href="http://theweek.com/article/index/242332/watch-a-massive-black-hole-devours-a-super-jupiter"&gt;ripping the planet apart&lt;/a&gt;!  (We’re all relieved to know it’s 47 million light years away from our much-beloved Earth.)&lt;/p&gt;

&lt;br /&gt;
&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/20ZC1_pJEEg" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;If perchance you take advantage of the weekend to catch up on your sleep, take special note of your dreams. Scientists in Japan have been carefully studying brain scans and reached a 60% success rate in &lt;a href="http://www.usatoday.com/story/tech/sciencefair/2013/04/04/dream-reading/2050723/"&gt;identifying what images dreamers are “seeing”&lt;/a&gt;. Maybe soon we can finally answer one lingering question: Do Android developers &lt;a href="https://play.google.com/store/books/details/Philip_K_Dick_Do_Androids_Dream_of_Electric_Sheep?id=jUX8N9kiCiQC"&gt;dream of electric sheep&lt;/a&gt;?&lt;/p&gt;

&lt;br /&gt;&lt;br /&gt;
&lt;em&gt;Each week, Fridaygram brings you geek-friendly stories of interest to enjoy during your weekend. We can’t read minds, though. Just docs.&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/maE_f5bNoo0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/1051253249610981032/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/fridaygram-april-foolery-ripping.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1051253249610981032?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/1051253249610981032?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/maE_f5bNoo0/fridaygram-april-foolery-ripping.html" title="Fridaygram: April foolery, ripping planets, and dream readers" /><author><name>Emily Wood</name><uri>https://plus.google.com/112374322230920073195</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-qDrWcKYRcaw/T9uHYe9JBQI/AAAAAAAAAds/7ZrH6pXANjc/s72-c/IMG_20120112_130505%2B%25281%2529.jpg" height="72" width="72" /><thr:total>2</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/fridaygram-april-foolery-ripping.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ADQHs5eip7ImA9WhBWEEQ.&quot;"><id>tag:blogger.com,1999:blog-596098824972435195.post-22528165996681285</id><published>2013-04-04T10:16:00.000-07:00</published><updated>2013-04-04T10:16:11.522-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-04T10:16:11.522-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="google compute engine" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud platform" /><title>Google Compute Engine: Expanded availability, new features, and lower prices</title><content type="html">&lt;img height="80" src="http://4.bp.blogspot.com/-HZ1PMz5bU1Q/TvNIxdSFV-I/AAAAAAAAA8k/CU4y_A4bdh8/s1600/marccohen.png" alt="Author Picture" style="float: right; margin-left: 1em; text-align: right;" /&gt;
&lt;em&gt;By &lt;a href="https://plus.google.com/100180575185522802900/about"&gt;Marc Cohen,&lt;/a&gt; Google Cloud Platform team&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;em&gt;Cross-posted with the &lt;a href="http://googleappengine.blogspot.com/"&gt;Google App Engine blog&lt;/a&gt;&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;

&lt;p&gt;Starting today, &lt;a href="https://developers.google.com/compute/"&gt;Google Compute Engine&lt;/a&gt; is &lt;a href="http://developers.google.com/compute/docs/signup"&gt;available&lt;/a&gt; to all customers who sign up for our &lt;a href="https://cloud.google.com/support/packages"&gt;Gold Support package&lt;/a&gt;. We’re also happy to announce a 4% reduction on all &lt;a href="https://cloud.google.com/pricing/compute-engine"&gt;Compute Engine pricing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the nine months since announcing Compute Engine, customers have been using Google’s Infrastructure as a Service product and giving us valuable feedback. Sebastian Stadil of Scalr wrote, in a &lt;a href="http://gigaom.com/2013/03/15/by-the-numbers-how-google-compute-engine-stacks-up-to-amazon-ec2/"&gt;recent review&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
“Google Compute Engine is not just fast. It’s Google fast. In fact, it’s a class of fast that enables new service architectures entirely.”
&lt;/blockquote&gt;

&lt;p&gt;We’re happy to hear that, because one of our main goals in building Compute Engine is to enable a new generation of applications with direct access to the capabilities of Google’s vast computing infrastructure.&lt;/p&gt;

&lt;p&gt;Based on user feedback, we’ve added a number of major features including:
&lt;ul&gt;
&lt;li&gt;The option to boot from &lt;a href="https://developers.google.com/compute/docs/disks#rootfrompd"&gt;persistent disks&lt;/a&gt; mounted as the root file system, &lt;a href="https://developers.google.com/compute/docs/disks#snapshots"&gt;persistent disk snapshots&lt;/a&gt;, the ability to checkpoint and restore the contents of network resident persistent disks on demand, and the ability to &lt;a href="https://developers.google.com/compute/docs/disks#attachdiskrunninginstance"&gt;attach and detach persistent disks&lt;/a&gt; from running instances.&lt;/li&gt;
&lt;li&gt;An improved administration console, the &lt;a href="http://cloud.google.com/console"&gt;Google Cloud Console&lt;/a&gt; (preview), which allows you to administer all your Google Cloud Platform services via a unified interface. Here’s a screenshot of the new Cloud Console in action:&lt;br /&gt;

&lt;div style="margin-left: 1em; margin-right: 1em;"&gt;
&lt;a href="http://4.bp.blogspot.com/-dUCy1QdLkIs/UVxsQ0e_DYI/AAAAAAAAAj8/TwUk-xWCAVo/s1600/cloud_console.png"&gt;&lt;img src="http://4.bp.blogspot.com/-dUCy1QdLkIs/UVxsQ0e_DYI/AAAAAAAAAj8/TwUk-xWCAVo/s1600/cloud_console.png" alt="Screenshot of Cloud Console" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; text-align: center;" width="450" /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;li&gt;Five new &lt;a href="https://developers.google.com/compute/docs/instances"&gt;instance&lt;/a&gt; type families (diskless versions of our standard instance types, plus diskful and diskless versions of high-memory and high-cpu configurations), with 16 new instance types.&lt;/li&gt;
&lt;li&gt;Two new supported &lt;a href="https://developers.google.com/compute/docs/zones"&gt;zones&lt;/a&gt; in Europe, which provide lower latency and higher performance for our European customers. We’ve also made it easy to migrate virtual machine instances from one zone to another via an enhancement to our &lt;a href="https://developers.google.com/compute/docs/gcutil/"&gt;gcutil command line tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;An enhanced metadata server, with the ability to support recursive queries, blocking gets and selectable response formats, along with support for updating virtual machine &lt;a href="https://developers.google.com/compute/docs/instances#tags"&gt;tags&lt;/a&gt; and &lt;a href="https://developers.google.com/compute/docs/metadata"&gt;metadata&lt;/a&gt; on running instances (which enables dynamic reconfiguration scenarios).&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;While we've been hard at work developing new features, we've also had the opportunity to play. Check out the amazing &lt;a href="http://www.chrome.com/maze/"&gt;World Wide Maze Chrome Experiment&lt;/a&gt;, developed by the Chrome team in Japan. This game converts any web site of your choice into an interactive, three dimensional maze, navigated remotely via your smartphone. Compute Engine virtual machines run Node.js to manage the game state and synchronization with the mobile device, while Google App Engine hosts the game’s web UI. This application provides an excellent example of the new kinds of rich, high performance back end services enabled by Google Cloud Platform.&lt;/p&gt;

&lt;p&gt;With today’s announcement, we look forward to welcoming many new customers, and bringing exciting new applications to Google Cloud Platform!&lt;/p&gt;

&lt;br /&gt;&lt;br /&gt;

&lt;em&gt;&lt;a href="https://plus.google.com/100180575185522802900/about"&gt;Marc Cohen&lt;/a&gt; is a Developer Programs Engineer focusing on helping developers get the most out of Google’s advanced cloud computing technologies. He has over 25 years of experience designing and building reliable, distributed systems in the telecommunications industry. A Seattle resident, Marc enjoys programming, indie pop/rock music, blogging and teaching.&lt;/em&gt;

&lt;br /&gt;&lt;br /&gt;

&lt;em&gt;Posted by &lt;a href="https://plus.google.com/107757668297288466839/about"&gt;Ashleigh Rentz&lt;/a&gt;, Editor Emerita&lt;/em&gt;

&lt;br /&gt;&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/GDBcode/~4/cmY_fDicQJc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://googledevelopers.blogspot.com/feeds/22528165996681285/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://googledevelopers.blogspot.com/2013/04/google-compute-engine-expanded.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/22528165996681285?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/596098824972435195/posts/default/22528165996681285?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GDBcode/~3/cmY_fDicQJc/google-compute-engine-expanded.html" title="Google Compute Engine: Expanded availability, new features, and lower prices" /><author><name>Emily Wood</name><uri>https://plus.google.com/112374322230920073195</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-HZ1PMz5bU1Q/TvNIxdSFV-I/AAAAAAAAA8k/CU4y_A4bdh8/s72-c/marccohen.png" height="72" width="72" /><thr:total>4</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://googledevelopers.blogspot.com/2013/04/google-compute-engine-expanded.html</feedburner:origLink></entry></feed>
