Blog of our latest news, updates, and stories for developers
Make the web faster with mod_pagespeed, now out of Beta
Wednesday, October 10, 2012
Ilya
Joshua
By Joshua Marantz and Ilya Grigorik, Google PageSpeed Team
Cross-posted with
Google Webmaster Central Blog
and other Google blogs
If your page is on the web, speed matters. For developers and webmasters, making your page faster shouldn’t be a hassle, which is why we
introduced mod_pagespeed in 2010
. Since then the development team has been working to improve the functionality, quality and performance of this open-source Apache module that automatically optimizes web pages and their resources. Now, after almost two years and eighteen releases, we are announcing that we are taking off the Beta label.
We’re committed to working with the open-source community to continue evolving mod_pagespeed, including more, better and smarter optimizations and support for other web servers. Over 120,000 sites are already using mod_pagespeed to improve the performance of their web pages using the latest techniques and trends in optimization. The product is used worldwide by individual sites, and is also offered by hosting providers, such as DreamHost, Go Daddy and content delivery networks like EdgeCast. With the move out of beta we hope that even more sites will soon benefit from the web performance improvements offered through mod_pagespeed.
mod_pagespeed is a key part of our goal to help make the web faster for everyone. Users prefer faster sites and we have seen that faster pages lead to higher user engagement, conversions, and retention. In fact, page speed is one of the signals in
search ranking
and
ad quality scores
. Besides evangelizing for speed, we offer tools and technologies to help measure, quantify, and improve performance, such as Site Speed Reports in
Google Analytics
,
PageSpeed Insights
, and
PageSpeed Optimization
products. In fact, both mod_pagespeed and PageSpeed Service are based on our open-source
PageSpeed Optimization Libraries
project, and are important ways in which we help websites take advantage of the latest performance best practices.
To learn more about mod_pagespeed and how to incorporate it in your site, watch our recent
Google Developers Live session
or visit the
mod_pagespeed product page
.
Joshua Marantz is the technical lead for mod_pagespeed. Ilya Grigorik is the Developer Advocate for Make the Web Fast.
Posted by
Scott Knaster
, Editor
Streak brings CRM to the inbox with Google Cloud Platform
Tuesday, October 9, 2012
By Aleem Mawani, Co-Founder of Streak
Cross-posted with the
Google App Engine Blog
This guest post was written by
Aleem Mawani
, Co-Founder of
Streak
, a startup alum of
Y Combinator
, a Silicon Valley incubator. Streak is a CRM tool built into Gmail. In this post, Aleem shares his experience building and scaling their product using Google Cloud Platform.
Everyone relies on email to get work done – yet most people use separate applications from their email to help them with various business processes. Streak fixes this problem by letting you do sales, hiring, fundraising, bug tracking, product development, deal flow, project management and almost any other business process right inside Gmail. In this post, I want to illustrate how we have used
Google Cloud Platform
to build Streak quickly, scalably and with the ability to deeply analyze our data.
We use several Google technologies on the backend of Streak:
App Engine
to serve our app.
App Engine Datastore
to persist user data.
Memcache
to make operations fast.
BigQuery
to analyze our logs and power dashboards.
App Engine Search API
to let users sift through their data.
Prediction API
to machine learn over user data.
Google Translate API
to translate our app to over 40 languages.
Our core learning is that you should use the best tool for the job. No one technology will be able to solve all your data storage and access needs. Instead, for each type of functionality, you should use a different service. In our case, we aggressively mirror our data in all the services mentioned above. For example, although the source of truth for our user data is in the App Engine Datastore, we mirror that data in the App Engine Search API so that we can provide full text search, Gmail style, to our users. We also mirror that same data in BigQuery so that we can power internal dashboards.
System Architecture
App Engine
- We use App Engine for Java primarily to serve our application to the browser and mobile clients in addition to serving our API. App Engine is the source of truth for all our data, so we aggressively cache using Memcache. We also use
Objectify
to simplify access to the Datastore, which I highly recommend.
Google Cloud Storage
- We mirror all of our Datastore data as well as all our log data in Cloud Storage, which acts as a conduit to other Google cloud services. It lets us archive the data as well as push it to BigQuery and the Prediction API.
BigQuery -
Pushing the data into BigQuery allows us to run non-realtime queries that can help generate useful business metrics and slice user data to better understand how our product is getting used. Not only can we run complex queries over our Datastore data but also over all of our log data. This is incredibly powerful for analyzing the request patterns to App Engine. We can answer questions like:
Which requests cost us the most money?
What is the average response time for every URL on our site over the last 3 days?
BigQuery helps us monitor error rates in our application. We process all of our log data with debug statements, as well as something called an “error type” for any request that fails.
If it’s a known error, we'll log something sensible, and we log the exception type if we haven’t seen it before. This is beneficial because we built a dashboard that queries BigQuery for the most recent errors in the last hour grouped by error type. Whenever we do a release, we can monitor error rates in the application really easily.
A Streak dashboard powered by BigQuery showing current usage statistics
In order to move the data into Cloud Storage from the Datastore and
LogService
, we developed an open source library called
Mache
. It’s a drop-in library that can be configured to automatically push data into BigQuery via Cloud Storage. The data can come from the Datastore or from LogService and is very configurable - feel free to contribute and give us feedback on it!
Google Cloud Platform also makes our application better for our users. We take advantage of the App Engine Search API and again mirror our data there. Users can then query their Streak data using the familiar Gmail full text search syntax, for example, “before:yesterday name:Foo”. Since we also push our data to the Prediction API, we can help users throughout our app by making smart suggestions. In Streak, we train models based on which emails users have categorized into different projects. Then, when users get a new email, we can suggest the most likely box that the email belongs to.
One issue that arises is how to keep all these mirrored data sets in sync. It works differently for each service based on the architecture of the service. Here’s a simple breakdown:
Having these technologies easily available to us has been a huge help for Streak. It makes our products better and helps us understand our users. Streak’s user base grew 30% every week for 4 consecutive months after launch, and we couldn’t have scaled this easily without Google Cloud Platform. To read more details on why Cloud Platform makes sense for our business, check out our
case study
and our post on the
Google Enterprise blog
.
Aleem Mawani
is the co-founder of Streak.com, a CRM tool built into Gmail. Previously, Aleem worked on Google Drive and various ads products at Google. He has a degree from the University of Waterloo in Software engineering and an MBA from Harvard University.
Posted by
Scott Knaster
, Editor
Teaming up on Web Platform Docs
Monday, October 8, 2012
By Alex Komoroske, Product Manager
Cross-posted with the
Chromium Blog
When you want to build something for the web, it's surprisingly difficult to find out how you can implement your vision across all browsers and operating systems. You often need to search across various websites and blogs to learn how certain technologies can be used. It's kind of like a scavenger hunt, except it's not any fun.
This scavenger hunt is soon coming to an end. Google along with the W3C and several
leading internet and technology companies
just
announced
the alpha release of
Web Platform Docs
. Web Platform Docs is a community-driven site that aims to become the comprehensive and authoritative source for web developer documentation.
The founding members of Web Platforms Docs have all already provided a lot of content for the site to help get this effort off to a strong start. However, collectively, we’ve barely scratched the surface. We decided that it would be better to open up Web Platform Docs to the community as early as possible, so that everyone – including you – can help
expand and refine
the documentation, and ultimately define the direction of the site.
If you have more questions about Web Platform Docs, you can find us on
Twitter
.
Alex Komoroske
is a Product Manager on Chrome's Open Web Platform team. Before he was a product manager he was a web developer, and even today he loves building web apps in his spare time.
Posted by
Scott Knaster
, Editor
Fridaygram: celebrating teachers, satellite anniversary, flipping food
Friday, October 5, 2012
By Scott Knaster,
Google Developers Blog
Editor
If you’re a teacher, happy
World Teachers' Day
! Whether you’re a teacher or not, you might take a moment today to think of your favorite teacher, that one who made a big difference to your education and general life outlook. We support education in a
bunch of ways
, such as
YouTube Edu
,
App Engine Education Awards
, and
Google Apps for Education
. And recently we’ve been observing World Teachers' Day by recognizing a few amazing teachers on our
+Google in Education
page. Here on Fridaygram, we try to honor our teachers by using good spelling and grammar.
Savvy history and science teachers might have told their students that yesterday was the
55th anniversary of the Sputnik launch
. Sputnik was the first human-made object to reach space. Sputnik looked like a basketball with antennas stuck to its side, and the little (585 mm diameter) spacecraft
beeped
its way around the world. Sputnik only lasted about 3 months in orbit, but it was a huge milestone.
Sputnik (replica)
Finally, here’s something that might prove educational: it's a video that shows
how to flip food in a pan
just like a pro. Spoiler alert: you’re supposed to move the pan back and forth, rather than actually trying to flip the food into the air. This will give you something to practice over the weekend.
All week long we post about important developer topics. Once a week, on Friday, we do a
Fridaygram
just for stuff that’s fun and interesting, but not necessarily developer-related. Special thanks this week to
Boing Boing
for showing off the food-flipping video.
Get a front row seat with GDL Presents
Wednesday, October 3, 2012
By Peter Lubbers, Program Manager, Google Chrome Developer Relations
Calling designers, web developers, and the creatively curious! Next week marks the launch of
Google Developers Live Presents,
a new series of exclusive programming from
GDL
.
Presents
kicks off this month with
Design Ignites the Web
, a family of episodes that takes you on a journey from back-end to front-end, showing you how to create compelling projects in the browser. The series will feature exclusive interviews with the developers behind select
Chrome Experiments
,
Chrome WebLab
,
Movi.Kanti.Revo
, and DevArt.
UPDATED Oct. 4: new dates and links for some events (see below).
So, what’s coming up?
Make Web Magic: The Minds Behind the Most Popular Chrome Experiments |
Tuesday, October 9 - Part 1, 1:00 PM PDT
|
20:00 UTC
[Event page]
| Part II, 2:00 PM PDT
|
21:00 UTC
[Event page]
|
Part III, 3:00 PM PDT
|
22:00 UTC
[Event page]
Using the latest open web technologies, the developers creating some of the most inspired Chrome Experiments showcase their latest web experiments and discuss how they are making the web faster, more fun, and open in this 3-episode hangout.
Host:
Paul Irish
,
Developer Advocate, Chrome
Guests: Hakim:
Google+
,
Website
| Michael Deal:
Google+
,
Website
| Mark Danks:
Google+
,
Website
All the Web’s a Stage: Building a 3D Space in the Browser
|
Thursday, October 11 - 10:30 AM PDT | 17:30 UTC
[Event page]
Meet the designers and creative team behind a new sensory Chrome experiment,
Movi.Kanti.Revo
, in a live, design-focused Q&A. Learn how Cirque du Soleil and Subatomic Systems worked to translate the wonder of Cirque into an environment built entirely with markup and CSS.
Host:
Pete LePage
,
Developer Advocate
Guests:
Gillian Ferrabee,
Creative Director, Images & Special Projects,
Cirque du Soleil | Nicole McDonald,
Director/Creative Director,
Subatomic Systems
Van Gogh Meets Alan Turing: The Browser Becomes a Canvas with DevArt
|
UPDATED DATE AND LINK:
Friday, October 19 - 10:00 AM PDT
|
17:00 UTC
[Event page]
How can art and daily life be joined together? Host Ido Green chats with creators Uri Shaked and Tom Teman about tackling this question with their “Music Room” – a case study in the power of Android – and with Emmanuel Witzthum on his project “Dissolving Realities,” which aims to connect the virtual environment of the Internet using Google Street View.
Host:
Ido Green
,
Developer Advocate
Guests: Uri Shaked, Tom Teman, and
Emmanuel Witzthum
Push the Limits: Building Extraordinary Experiences with Chrome
|
UPDATED DATE AND LINK:
Week of October 29
[Event page]
The experiments in
Chrome Web Lab
are pushing the limits of what developers can build in a browser. Explore the design and technical mastery that went into making extraordinary experiences, directly from the experiments’ home, the London Science Museum.
Hosts:
Pete LePage
,
Developer Advocate
|
Paul Kinlan
,
Developer Advocate
Guests:
Tellart
&
B-Reel
representatives for
Universal Orchestra, Sketchbot, Teleporter, LabTag, DataTracer
If you can’t make the live show, you’ll still be able to see recordings of these and past sessions on our
YouTube channel
. For more information on our monthly schedule, add
+Google Developers
to your circles and follow
@googledevs
on Twitter.
Peter Lubbers
works on the Chrome Developer Relations Team, spreading HTML5 and Open Web goodness. A native of the Netherlands, Peter served as a Special Forces commando in the Royal Dutch Green Berets.
Posted by
Scott Knaster
, Editor
More than a Map: a new site to explore the full power of the Google Maps API
Wednesday, October 3, 2012
By Ken Hoetmer, Product Manager, Google Maps JavaScript APIs
We’re constantly working to build the most comprehensive, accurate and usable maps in the world for our users--no matter where or how they access Google Maps. While millions of people come directly to
maps.google.com
to search for a nearby business or get directions, many people around the globe experience Google Maps on their favorite website or application thanks to the
Google Maps API
(and some very talented developers). In fact, today 800,000 active websites and apps are using the Google Maps API to create interesting and useful experiences for you.
MoreThanAMap.com
To demonstrate the capabilities and features of the Google Maps API, today we’re launching a new website called
morethanamap.com
. This site showcases the unique features of the Google Maps API and how developers are using it.
Visit
morethanamap.com
to learn more!
Through
morethanamap.com
you’ll learn how developers can embed popular Google Maps features like Street View, public transit directions, location data, and advanced data visualization capabilities into their website or app. The interactive demos on
morethanamap.com
show how these features are ready to be added to any website or app.
Developers can use the Google Maps API to embed Street View imagery into their sites
Even if you’re not a developer, the animated
London Heathrow flight map
or
global population heat map
are a fun way to visualize data and explore the power of Google Maps.
Google Maps Developers Stories from Around the World
Morethanamap.com
also features stories from our community of developers who are using the Google Maps API to
start businesses
,
help improve their communities
or
save the environment
. Starting next week we’ll showcase these stories weekly on the
Geo Developers Blog
. And follow us on
Google+
to learn more.
With just a
backpack and a camera
Google Maps team member
Carlos Cuesta
went on a global tour to video blog six distinct developers who are creating thriving applications with the Google Maps API.
Start exploring what’s possible with the Google Maps API today at:
morethanamap.com
.
Ken Hoetmer is Product Manager of the Google Maps JavaScript APIs, based in Sydney, Australia. A long time Maps API developer, he claims to have been the first external user of JavaScript Maps API v3.
Posted by
Scott Knaster
, Editor
GDG DevFest Season, round 2: Happily hacking!
Tuesday, October 2, 2012
By Phoebe Peronto, Developer Marketing
“Happily hacking!” was GDG DevFest organizer Simon Buxton’s share directly from the DevFest Auckland event on September 29th. This past weekend marked the second round of community-organized DevFests. Local Google Developer Groups powered up the developer community with 11 total events. From hackathons that produced compelling and polished apps, to local press coverage, to excitement for future events, this most recent round of DevFest events showcased the engagement and innovation thriving in the Google developer ecosystem. Below, we’ve spotlighted key moments from last weekend’s events and provided a schedule for those coming up next.
Find your nearest GDG
,
attend an event
, and
join the community
!
DevFest Jakarta
|
Host
:
GDG Jakarta
Tech In Asia
recapped the most memorable moments from DevFest Jakarta.
DevFest Kyoto
|
Host
:
GDG Kyoto
“今、DevFest Kyotoでは、CodeLabの真っ最中です!写真は後でアップします。
“ –
GDG Kyoto +Page Update
DevFest IIT Guwahati
|
Host
:
GDG IIT Guwahati
“75 developers and designers, 25 teams, 15 prototype submissions with 5 complete projects define a successful 12-hour hackathon as part of the first-ever GDG DevFest held at +
IIT Guwahati
. Thanks a lot +
Google Developers
for sharing our update, most importantly for supporting such a great GDG program and a flagship event like DevFest. It's not even 24 hours after our hackathon and students at +
IIT Guwahati
are asking when's the next one !! <3 . Hope the fruitful collaboration continues for years to come.” –
GDG IIT Guwahati +Page Update
Photo Gallery
DevFest Goa
|
Host
:
GDG Goa
“We had an awesome devfest extending over two days 29th and 30th Sep 2012. The event was attended by about 100 developers (Day 1 and Day 2). We had two tracks on Day 1 featuring Android and Modern Web (Chrome/HTML5/Dart), followed by a hackathon on Day 2. In fact, we hosted a code lab on HTML5 in which a complete 2D game was developed step-by-step by participants. Out of the hackathon came more than 6 apps, 4 of which were completely polished (will be live in one week’s time). From an HTML5 version of “Draw My Thing,” to an Android rescue app that logs the user out of all accounts in the event of one’s phone being misplaced, to a presentation app featuring an HTML5 version of Prezi and Mupples, the hackathon entries ran the gambit. Participants really enjoyed. Explore the event gallery on our
+Page
, Facebook, and Twitter.” –
Smarth Behl, GDG DevFest Goa Organizer
DevFest Surabaya
|
Host
:
GDG Surabaya
“DevFest Surabaya took place on September 29th at Sekolah Tinggi Teknik Surabaya, Ngagel Jaya Tengah 73-77, Surabaya, Indonesia, hosting a total of 267 developers. Of the tracks focusing on Maps, Android, and HTML5, highlight sessions included Merci Niebres (Google Senior Marketing Events Team) explaining Google's technology impact on developers all around the world, Anna Chernova (Google Quantitative Analyst) covering various Google Maps API for developers, and Vivi Wei Zhang (Metaps Singapore) discussing monetizing Android applications. Attendees were ecstatic about the event and look forward to the next GDG event.” –
Esther Irawati Setiawan, GDG DevFest Organizer
Photo Gallery
DevFest Seattle
|
Host
:
GDG Seattle
Can’t get enough GDG? Visit this past weekend’s events +Pages for more info:
Jakarta
Kyoto
Washington, D.C.
IIT Guwahati
GDG Goa
Surabaya
Auckland
Colombo
Seattle
Amman
Bangalore
Upcoming DevFests
Santa Fe, Argentina
| 10/2/2012
Buenos Aires, Argentina
| 10/3/2012
Kuala Lumpur, Malaysia
| 10/4/2012
Mumbai, India
| 10/5/2012
Pune, India
| 10/6/2012
Bandung, Indonesia
| 10/6/2012
Kathmandu, Nepal
| 10/6/2012
Amman, Jordan
| 10/6/2012
DevFest season goes until November 11th, so you still have time to get involved. It’s a really simple process:
find your nearest GDG
,
attend an event
, and
join the community
! Visit
devfest.info
for specific event details and session updates.
Phoebe Peronto is an Associate Product Marketing Manager on the Developer Marketing team here at Google. She’s a foodie who has a penchant for traveling, politics, and running. Oh, and of course...Go Cal Bears!
Posted by
Scott Knaster
, Editor
Got big JSON? BigQuery expands data import for large scale web apps
Monday, October 1, 2012
By Ryan Boyd, Developer Advocate
JSON is the data format of the web. JSON is used to power most modern websites, is a native format for many NoSQL databases hosting top web applications, and provides the primary data format in many REST APIs.
Google BigQuery
, our cloud service for ad-hoc analytics on big data, has now added support for JSON and the nested/repeated structure inherent in the data format.
JSON opens the door to a more object-oriented view of your data compared to CSV, the original data format supported by BigQuery. It removes the need for duplication of data required when you flatten records into CSV. Here are some examples of data you might find a JSON format useful for:
Log files, with multiple headers and other name-value pairs.
User session activities, with information about each activity occurring nested beneath the session record.
Sensor data, with variable attributes collected in each measurement.
Nested/repeated data support is one of our most requested features. And while BigQuery's underlying infrastructure supports it, we'd only enabled it in a limited fashion through M-Lab's test data. Today, however, developers can use JSON to get any nested/repeated data into and out of BigQuery.
For more information on importing JSON and nested/repeated data into BigQuery, check out the
new guide
in our documentation. You should also see the
Dealing with Data section
for details on the new querying syntax available for this type of data.
Improvements to Data Loading Pipeline
We’ve made it much easier to ingest data into BigQuery – up to 1TB of data per load job, with each file up to 100GB uncompressed JSON or CSV. We’ve also eliminated the 2 imports per minute rate limit, enabling you to submit all your ingestion jobs and let us handle the queuing as necessary. In a recent project I’ve been working on, import jobs for 3TB of data that previously took me 12 hours to run now take me only 36 minutes –
a 20x improvement
!
We’ve published a new
Ingestion Cookbook
that explains how to take advantage of these
new limits
.
We’re initiating a small trusted tester program aimed at making it easier to move your data from the App Engine Datastore to BigQuery for analysis. If you store a lot of data in Datastore and are also using BigQuery, we’d like to hear from you. Please
sign up now
to be considered for the trusted tester program.
Learn more this week
Michael Manoochehri
, Siddartha Naidu and
I
are in London this week talking about BigQuery and these new features at the
Strata big data conference
.
Ju-kay Kwek
will also be talking about BigQuery at the
Interop NYC conference
tomorrow. Please stop by, say hi, and let us know what you’re doing with big data.
We’ll also be producing a
Google Developers Live session
from
Campus London
on Friday at 16:00 BST (15:00 GMT).
Ryan Boyd
is a Developer Advocate, focused on big data. He's been at Google for 6 years and previously helped build out the Google Apps ISV ecosystem. He published his first book, "Getting Started with OAuth 2.0", with O'Reilly.
Posted by
Scott Knaster
, Editor
Fridaygram: underwater views, disappointing squid, space move
Friday, September 28, 2012
By Scott Knaster,
Google Developers Blog
Editor
If you’re making a map of the world, you have to pay attention to the large fraction of the planet that’s beneath the water. That’s why Google Maps now includes
underwater panoramic images
from around the oceans. Naturally, there are a lot of wonderful sights to see, including a
sea turtle with a school of fish
and an
ancient boulder coral
. And just for fun, you can watch an
underwater hangout
from the Great Barrier Reef, without traveling to Australia or getting wet.
We don’t know if Google Maps has yet captured an image of a vampire squid (
Vampyroteuthis infernalis
). But
researchers have found
that this creature, whose name means "vampire squid from hell", has been more than a little overhyped. The vampire squid doesn’t hunt victims for blood. Instead, it eats random detritus floating around in the ocean. Still: great name!
Finally, the people who operate the International Space Station have a lot to do, such as making sure it doesn’t plow into any space junk. With that excellent goal in mind, NASA was
considering moving the ISS this week
to avoid an old satellite and a piece of rocket in its path. How do you move the ISS? By firing the engines of a docked cargo ship, of course!
Fridaygram
posts are mostly for fun, not necessarily for developer stuff like our posts the rest of the week. This week Google turned 14 years old, and like lots of others its age, Google is already
learning how to drive
.
How redBus uses BigQuery to master big data
Friday, September 28, 2012
By Pradeep Kumar, redBus
This guest post was written by Pradeep Kumar. Pradeep is a technical architect at
redBus
, an online travel agency in India that provides a unified online bus ticketing service. We recently published a
business case study
for redBus and wanted to dive into some more technical detail for the readers of the Google Developers Blog.
Our company
has been providing Internet bus ticketing for India since 2006. There are more than 10,000 bus routes available for booking, and we have dozens of machines processing booking requests. Each step in the booking process produces a lot of data – on search terms, route availability, server health and more. We needed tools to to be able to process this data quickly and easily to determine whether decreases in customer bookings are the result of server problems or simply less demand.
While we typically use relational databases to store and analyze data, we knew we needed something more powerful if we wanted to analyze 500GB or more, so we started to look at open source frameworks like
Hadoop
and analysis platforms like
Hive
and
Pig
. We found that these frameworks require considerable in-house expertise and infrastructure investments and wouldn’t give us answers to our questions as fast as we wanted. We decided to try out
Google BigQuery
as a trusted tester, with hopes that it would give us the ability to perform quick iterative analysis without much up-front investment. Our initial tests went very well, so we started building our analysis tools on top of BigQuery.
BigQuery allows us to run SQL-like queries to understand the bus routes in highest demand and what types of searches users are performing. We’ve also used it to build internal dashboards that give us a snapshot of system health.
For more information on how we structured our immutable tables, pipelined our data into BigQuery for analysis using RabitMQ, and to see example SQL queries we’ve used, check out my
article on developers.google.com
.
Pradeep Kumar is a technical architect at
redBus
.
Posted by
Scott Knaster
, Editor
Labels
.app
.dev
#30DaysOfFlutter
#AIY
#Contacts API
#CSEdWeek
#Dart #Web #GDE #Experts #IamaGDE
#devfest18 #devfeststories #gdg #googledevelopers #developers #community
#freeandopen
#GDC20
#Google Workspace
#Google Workspace Add-ons
#Google Workspace Developer
#GoogleIO
#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments
#growwithgoogle
#io12
#io13
#io14
#io15
#io16
#io17
#io18
#io2012
#io2013
#io2014
#PeopleAPI
+1
20% project
3d
3D face mesh
about.com
accelerator
Access
accessibility
Account Linking
actions
Actions Builder
Actions console
actions on google
Actions SDK
actionsongoogle
activity
Administrative APIs
AdMob
adobe
Adobe Creative Cloud
Adobe Creative Cloud Libraries
Ads
adsense
advanced
advogato
AdWords
africa
agency program
agpl
AI
AI Principles
AIY
AIY Projects
AIYProjects
ajax
ajax apis
ajax search
ajax search books news apis
Alfred Camera
all for good
amarok
AMP
AMP Cache
analytics
and Assistant
android
Android App Development
Android Developer
android developer certification
android developers
Android Development
Android Studio
Android Things
Android Tools
Android TV
android wear
android11
androidstudio
Angular
animation
Announcement
announcements
aogdevs
apache
api
API.AI
apis
apis console
apis explorer
apis. charts
app
app design
App dev
App Development
app engine
app indexing
app indexing api
App Invites
AppActions
apple
Application Development
apps
apps script
AR
ARCore
area 120
Art
artifact management
Artificial Intelligence
asia
asl
assistant
atom publishing protocol
Audio
augmented faces
Augmented images
augmented reality
australia
Auth
authentication
authsub
automatic speech recognition
AutoML
awards
axsjax
Badges
barcodes
Bazel
beacon
beacons
Belarus
bespin
best practices
beta
bigquery
bitcoin
Black
Black Consciousness Day
Blockly
blogger
Bluetooth
book search
books API
bootcamp
braintree
Brazil
british english
Brotli
browser
Build Out
building ajax apps
BuildOut
Bulgaria
business
business console
buzz
c++
Cache
caja
caldav
calendar
camino
campfire one
caption
cardboard
CardDAV
cast
Cast Connect
celebrating
Certification
certification award
Change
channel
chinese
chrome
chrome apps
chrome dev summit
chrome devtools
chrome experiment
chrome extensions
chrome os
Chrome OS IO
Chrome OS IO19
chrome web store
Chromebooks
chromecast
chromium
chronoscope
cifs
classes
classroom api
client libraries
Climate
closure tools
cloud
Cloud anchor
Cloud Anchors
Cloud Computing
cloud datastore
Cloud Functions
cloud functions for firebase
Cloud Next
cloud platform
cloud portability
cloud services
cloud sql
cloud storage
Cloud Study Jam
cms
coca cola
CocoaPods
code for educators
code jam
code review
code-in
codeedu
codelabs
coding
coffee with a googler
Colaboratory
collada
color
Colt McAnlis
commerce
community
community connectors
compatibility
competition
Compilers
compression
compressorhead
computer science
Computer Science Education Week
computer vision
computing heritage
conference
conferences
Console
contacts api
Containers
contest
contextual gadgets
conversation design
conversations
Coral
Coral updates
Core ML
couchdb
countdown to I/O 2012
country support
courses
COVID
COVID-19
COVID19DetectProtect
CPU
crash course
Crash Reporting
crashlytics
creative commons
cricket
crisis response
Croatia
Crostini
cryptocurrency
cryptography
css
css3
Custom Elements
custom search
custom search api
cxd
Czechia
DA
danish linux forum
dart
Dashboard
Data Compression
Data science
Data Visualization
database
Databases
Dataset
Datasets
datastore
dataviz
Daydream
Debian
demo
Demo Day
deprecation
Depth
design
desktop
desktop apps
Dev Tools
devart
develop
developer
Developer Advocate
Developer Communities
Developer Culture
Developer Dashboard
developer expert
developer features
Developer Keynote
developer library
Developer Preview
Developer Profile
developer relations
developer student clubs
developers
developers. meetup
Development
devfest
devfest developer chrome maps social wave apps
DevFest18
DevFestStories
Device
DFP
Dia da Consciência Negra
dialogflow
differential privacy
Digital wallet
discovery service
diversity
diversity-and-inclusion
django
dns
do-it-yourself
Docker
docs
documentation
documents list api
dojo
domain
domains
doodles
dot net
doubleclick
dreamweaver
Drive
drupal
dsc
dynamic links
earn
earth
Ebay
eclipse
eclipsecon
eddystone
Edge AI
Edge TPU
Edge TPU Accelerator
Edge TPU Dev Board
educatio
education
email
EMEA
encryption
endpoints
enterprise
Entity Extraction
entrepreneurs
Error logging
Estimator
Estimators
estonia
Ethics
Europe
event
events
evolution
execution api
Experts
extensions
Fabric
face detection
Fairness
fairness in machine learning
faster web
FCM
FCP
featured
feeds
finance
fintech
Firebase
Firebase Analytics
Firebase Cloud Functions
Firebase Cloud Messaging
Firebase Dynamic Links
firebug
firefox
firestore
firevox
firstbeta
fitness
flutter
Flutter 1.2
Flutter 1.5
Flutter 1.9
Flutter 2
Flutter at IO
Flutter Clock
Flutter Create
Flutter developers
Flutter Engage
Flutter for desktop
Flutter for web
Flutter Interact
Flutter Live
Flutter plugin
flutter release preview 1
flutter release preview 2
Flutter Web
foldables
Follow Us
Follow-up Responses
font api
Fonts
fosdem
founders
freebsd
freenet
Fridaygram
fusion tables
G Suite
G Suite Developer
G+
gadgets
Game Developers Conference
Game Development
games
gaming
gcc
gci
GCP
GDA
gdata
GDC 2020
GDC17
GDD
gdd07
gdd08
gdd09
GDD11
GDE
gdg
gdg juba
gdg spotlight
gdl
gdl weekly
GDSC
gears
General Availability
geo
geolocation
geoserver
GET
getpaid
ghop
Gigster
git
github
GKE
Glass
gmail
Gmail Add-on
Gmail API
Gmail APIs
GMTC
gnome
gnome women's summer outreach program
Go
golang
goo.gl
Google
Google AI
Google Analytics
Google APIs
Google APIs REST
google apps
google apps api
google apps for your domain
google apps marketplace
Google AR
Google Arts & Culture
google assistant
Google Assistant Bluetooth
Google Assistant Developer Day
Google Assistant IO
Google Assistant IO19
google assistant sdk
Google Brain
google buzz
Google Cardboard
google cast
google certification
google chart api
Google Charts
google checkout
google chrome
Google Cloud
Google Cloud Messaging
Google Cloud Platform
google cloud storage
Google Cloud Talks
Google Cloud training
google code
google code project hosting
google code search
google code university
google compute engine
Google Coral
google data apis
google data protocol
Google Data Studio
google developer day
google developer days
Google Developer Experts
Google developer group
Google Developer Groups
Google Developer Profiles
Google Developer Scholarship
Google Developer Student Clubs
google developers
Google Developers Academy
google developers certification
google developers community groups
Google Developers Groups
Google Developers Live
Google Developers site
Google Developers University Consortium
google docs
Google Docs Add-on
Google Docs API
google doctype
google domains
Google Drive
Google Drive SDK
google earth
google fit
Google Fonts
Google For Games
google for startups
google friend connect
google gadgets
google gears
google grants
Google Groups Settings
google health
Google Home Hub
Google I/O
Google Identity Platform
Google in Asia
google io
Google IOS Android
Google Maps
Google Maps Platform
google mashup editor
Google Meet
Google Noto fonts
google pay
google pay account
google pay api
google pay business
Google Pay Developers
Google Pay India
google pay integration
google pay support
google photos
google platform
Google Play
Google Play Developer API
Google Play Developers
Google Play Indie games accelerator
Google Play Indie Games Festival
google play services
Google Registry
google scholarships
Google Science Fair
Google sheets
Google Sheets Add-on
Google Sheets API
Google Slides
Google Slides Add-on
Google Slides API
google space
Google Spreadsheets API
google storage
google summer of code
Google tech talk
Google technology
google technoloy user groups
google tv
google visualization api
google wallet
Google Wave
google web elements
google web toolkit
Google Workspace
Google Workspace Add-ons
Google Workspace Chat
Google Workspace Chatbots
Google Workspace Developer
Google Workspace Developer Google Workspace Chat Google Workspace Chatbots
google.org
google+
GoogleAssistant
googlecast
googledevelopers
googleio
googlenew
GooglePlay
GooglePlay AndroidDev
googlewebelements googleio
GPE
GPGS C++ Games
GPT
Gradle
green linux
Groovy
Groups API
grow
grow with google
gsoc
GSuite
gtags
gtug
guest post
guice
gulp
GWSOP
gwt
gzip
hackathon
hacking
hackthon
hamilton
hand tracking
Handwriting
hangouts
Hangouts Chat
Hangouts Chat API
haproxy
Headset
hg
hibernate
hiring
howto
hpux
html
html5
http
I/O
I/O 17
I/O 2017
I/O Extended
I/O Live
IamaGDE
ical
ICYMI
identity
ietf
ignite
igoogle
iguanas
iiw
Image Compression
image search
Imara
In-app billing
in-app payments
in-app purchase
incubator
India
indie
indie developers
Indie Games
Indie Games Accelerator
Indie Games Festival
Information Technology Residency Program
information visualization
Instagram
integration status
intelligentwire
interactive music
International Women’s Day
internationalization
internet explorer
internet of things
internship
interviews
IO
IO17
io18
IO19
IO19 Flutter
IO2017
ios
iOS SDK
IoT
ipad
iphone
iPhone Development
israel
Issue Tracker
ITRP
IWD 2020
IWD 2021
jaiku
japanese
java
javascript
jetpack
Jetpack Compose
jobs
joomla
joomladayus2007
joomladayusa
JS
json
karaoke
KDE
KDE 4.0
Keras
kernel
kernel summit
keynote
khronos
kids
kids coding
kids coding team
kml
korean
Kotlin
Krakow
Kubernetes
labs
lanchpad
language
languages
laptop apps
laptops
Large Screens
latam accelerator
LatAm startups
Latest
Latin America
latitude
latvia
launch
launchpad
launchpad accelerator
launchpad studio
LaunchShow
lca
Leadership
Learning
lens
lessons
licenses
linux
linux foundation
Linux on Chrome OS
Linux on Chromebooks
linux summit
linux virtual server
linuxconf eu
lithuania
Local Home
Local Home SDK
localization
Location
LoCo
Logging
london
mac
MacFuse
Machine
machine intelligence
machine learning
machine learning accelerator
Mainframe Migration
maker
Makers
malware
manufacturing
maps
maps apis
Marketplace
material
material components
material design
MDL
MediaPipe
meetup
mercurial
Mexico startups
Micronaut
Microservices
Mirru
MIT CSAIL
MIT Media Lab
ml
ML Kit
MLCC
mobile
Mobile App Development
mobile design
Mobile Development
mobile performance
mobile sites
mobile speed
mobile UX
Mobile web
Mobile World Congress
mod_pagespeed
Moderator
monetize
Monthly roundup
MOOC
mozilla
multi-platform
mylar
myspace
MySQL
mythtv
named
narratives
native ads
native client
nearby
Nest
Nest WiFi
netbsd
Next Billion Users
nodejs
non-profit
nonsense
nosql
notifications
Noto Serif CJK
NPM
nss
nvidia
NYT
O3D
oauth
OAuth playground
OAuth2
Object Detection and Tracking
objective-c
OCaml
Occlusion
ocr
ODF
office hours
oha
online payments
OOXML
open data
open source
open source blog
open source releases
open web
open-source
openajax alliance
opengl
openid
opensocial
openssh
openssl
Optimization
oreilly
orkut
oscon
oscon2007
osi
oss devs
ossjam
osx
pactester
page speed
PageSpeed
palette
payment handler
payment request api
payment web standard
payments
paypal
Peer bonus program
performance
persistence
persistent AR
phone
photos
picasa
picasa web
places API
Platform_Update
play services
playground
plone
plone sprint
podcast
poland
Poly
polymer
Polymer Summit
portugal
Pose Detection
Pose Estimation
posix
POST
PowerMeter API
prediction api
Prerender
preview
Pride Week
privacy
prizes
processing
production access
products - slides
programmers
programming
Progressive Web App
Project Connected Home over IP
project hosting
Project Loon
Project Tango
prototype
proximity
pubsubhubbub
PWA
py3k
python
python sprint
Qualcomm
Qualcomm Google
rails
random hacks of kindness
Rasberry Pi
Raw Depth
React
reader
Recording and Playback
releases
Remote Config
research
reserve seats
Resources
Responsible AI
REST
result snippets
Reto Meier
review process
Rewarded Ads
Rewarded Video Ads
rhino
Saatchi
Safety & Security
safety and security
salesforce
samba
Sample dialogs
Samuel Mugisha
sandbox
Santa Tracker
Scala
scalability
scale-ups
Sceneform
schedule
scholarship
scholarships
scopes
Scratch
screencast
sdk
sdks
search
security
Selfie Segmentation
Serbia
serif
Serverless
service worker
sessions
seurat
shape
Sheets
Sheets API
shindig
shopping
Shoreline Amphitheatre
shortcuts
showcase
sidewiki
Sign language
sign-in
signall
silverstripe
SIMD
sitemaps
sites api
sixapart
sketchup
Slides API
small business
small businesses
small-business
smart display
Smart Home
Smart Lock for Passwords
soap search api
soc
social
social graph
software update
solaris
solution challenge
solutions challenge
souders
spa2007
Space
spdy
speakers
speech
speed
speed tracer
Spring
spyware
Stable release
Stackdriver
standards
startup
Startup accelerator
startup africa roadtrip
Startup Summit
startups
Static Sites
STEM
storage
stories
Street View
Strobe
student programs
students
stuff
style
subscribed links
subscription
subversion
summer of code
Sundar Pichai
SVG
sxsw
syndication
Tablets
targeted spyware
tasks API
Team Drives (new)
techmakers
Technical Writing
technology
templates
TensorFlow
tensorflow dev summit
TensorFlow Lite
TensorFlow Research Cloud
tensorRT
Test Lab
testing
text embedding models
Tez
TF Lite
tfdevsummit
TFLite
themes
thought leadership
tool
Toolkit
tools
topp
TPU
TPU Dev Board
training
Traits
tranparency
transit
translate
translation
tutorials
tv
ubiquitous computing
ubiquity
ubucon
ubuntu
Udacity
UI
Ukraine
UN
UNDP
UNICEF
unicode
unit test
Unity
universal
Universal App Campaigns
University
unix
Update
updates
url
url shortener
URLs
USB Accelerator
UX
verification
video
videos
Vim
virtual keyboard
virtual reality
visualization
voice
voice kit
voice technology
voice user interface
VR
VUI
wattpad
Wear OS
Wearables
Weave
web
web animations api
web apps
web components
web design
web designer
web development
web exponents
web fonts
Web payments
web performance
web platform docs
web registry
webfonts
webgl
webmaster
WebP
website optimizer
websites
webVR
weekly roundup
WhiteHouse.gov
Who's at Google I/O
win
windows
windows programming
Winter of Code
women
women developers
women founders
Women in Tech
Women Tech Makers
women techmakers
WomenTechmakers
writing
wtm
xauth
yahoo
young developers
Young Makers
youtube
zlib
zurich
ZXing
Archive
2021
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2020
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2019
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2018
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2017
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2007
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2006
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2005
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Subscribe
Follow @googledevs
Visit
Google Developers
for docs, event info, and more.