Blog of our latest news, updates, and stories for developers
Google Data Ideathon
Friday, November 30, 2007
By Stephanie Liu, Google Data APIs Team
The Google Data team is holding a local event for developers Thursday, December 13th, 5:00pm-10:30pm at the Googleplex (Mountain View, CA). It'll be part hackathon, part unconference, part user group, part food, and part fabulous prizes.
Besides a short kick-off session, everything else will be up to you. We'll provide the wi-fi, power and food, and you can utilize the time however you want -- whether it's to pick the brain of someone on the GData team, meet other local developers, hack away on your current project, sit in on impromptu sessions about things like GData + Gears and GME, or hold your own lightning talk about the project you're working on.
Head over to the
GData blog for the full announcement
and the
event page
to RSVP and for more info.
Hope to see you there!
Google Gadgets going cross-platform
Thursday, November 29, 2007
By Mike Pinkerton, Software Engineer
For about two years now, people have been writing gadgets for Google Desktop on
Windows and for iGoogle on the web. Today, with the announcement of Google
Gadgets for Mac OS X, Google Desktop users on the Mac can now run the same
Windows and web-based gadgets in Apple's Dashboard with zero (or very few)
changes.
Check it out for yourself
.
Google Gadgets for the Mac uses WebKit's JavaScript engine inside Dashboard, so
the majority of gadgets just work if they're written properly. The rest can be
fixed by following a few guidelines:
Use JavaScript, not JScript
WebKit is case-sensitive, JScript is not, which can lead to problems if you assume can you do things like interchange SetTimeOut() and setTimeout().
Avoid JScript-only features like collections and ActiveX.
Avoid IE-specific DOM extensions, just as if you were writing a multi-browser web application.
Avoid Windows-specific APIs
You shouldn't assume ActiveX or certain DLLs are available. Neither WebKit nor Mac OS X supports ActiveX, so these gadgets must be rewritten.
Avoid Windows-only APIs such as Google Talk. These APIs are not (yet) available on Mac OS X.
Understand how Dashboard is different
The Dashboard environment is very different from a web page or the Desktop sidebar on Windows in that it comes and goes as the user activates it. Don't rely on your gadget always being visible. Your gadget won't run or update when Dashboard isn't in the foreground.
Don't rely on access to the file system. The security model for Dashboard doesn't allow arbitrary file access to the hard disk, although your gadget does have access to files in its own archive. Things like file pickers won't work. Note that while restricted file system access is a departure from how gadgets work on Windows, it's consistent with Dashboard's security model and the behavior of other widgets developed for Mac OS X.
For more details, see
Writing a Cross-Platform Gadget
, part of the Desktop Gadget API documentation.
If you're interested in developing your own gadget, visit the
Gadgets API homepage
. If you're already a gadget developer,
download the beta
today to test your gadget and ensure that it works correctly.
Chronoscope: 2 + 2 = 5 with GWT and Android
Wednesday, November 28, 2007
By Dion Almaer, Google Developer Programs
Timepedia has released
Chronoscope
, an open source charting and visualization library, built using GWT.
It features:
Canvas abstraction for drawing vector graphs
Graph Style Sheets abstraction for configuring the look-and-feel of charts
Scalable multiresolution rendering supporting up to tens of thousands of points
Zoom and pan at interactive frame rates, from centuries to milliseconds
Auto-ranging, auto-layout of chart axes and ticks.
Auto-legend, and mini-chart Overview
Add pushpin markers, domain and range markers, and overlays like Google Maps
Bookmarkable chart state, works with Back button
JS interopability. GWT API can be used by pure Javascript programmers
Microformat support. Charts can be configured without programming.
Server-side Font assistance. Render rotated text.
Portable, Chronoscope is not tied to GWT, can be used to render from servlets, applets, or other environments.
What is particularly interesting is how the Chronoscope team was able to take their existing Java source code,
add 8 hours of Android exploration
, and ended up with the same charting and visualization library that works on Android using their graphics support.
This is one area that GWT truly shines. The fact that you write your code in the Java programming language means that you can reuse it in other places where Java runs. Being able to write one application and quickly have it run on Android and the iPhone is pretty compelling.
Here you can see it running:
It's here: the Google Highly Open Participation Contest
Tuesday, November 27, 2007
By Leslie Hawthorn, Open Source Team
The
Google Summer of Code
program has been a joint labor of love between Google and the open source community for the
past three years
, and the results have been spectacular: hundreds of college students have been introduced to open source software, thousands of people across the globe have begun development together and millions of lines of open code have been produced, 4 million last year alone. We've been particularly proud of this program and how much it has helped the community and we've spent a lot of time thinking about ways we can continue helping open source projects find even more contributors. Today, we're pleased to announce the
Google Highly Open Participation Contest,
our new effort to get pre-university students involved in all aspects of open source development, from fixing bugs to writing documentation and doing user experience research.
While we're very excited about many aspects of the contest, the best part is that everyone can participate. Contestants must meet the
eligibility requirements
, but anyone interested in helping out can simply
suggest a task
to be included in the contest. Our contestants have a chance to win t-shirts, cash prizes, and a visit the Googleplex for a day of technical talks, delicious food and a photo with our very own
Stan T. Rex
.
Want to learn more? Check out the
contest FAQs
and tell your favorite pre-college students to pick a task or two to complete. You can always visit our
discussion group
to get help or share your thoughts.
Update:
Fixed the broken links.
ZXing 1d/2d Barcode decoding source code released
Tuesday, November 27, 2007
By Sean Owen, Google Print Ads Team
Recently in the New York Times, we placed a small graphic as part of a Google Print Ad. You aren't looking at one of those
eye focus games
(It's a sailboat! Or a shark!) but a two-dimensional barcode. Those of us who already know what it is pulled out our phones and "clicked" it with the camera, and were connected to the advertiser's web site. "Wha?", you say? See
http://www.google.com/printads
/barcode
. While this kind of thing has been a common sight in Asia for years, this ad is one of many signs that the technology is arriving in Europe and North America.
But Advertising is only part of the story here. Engineering is also involved and we want to improve the quality and availability of barcode reader software available to developers and end users. So today I would like to announce the "ZXing" (from: "zebra crossing") project, an open-source, Java, multi-format 1D/2D barcode reader which can be built into a reader application for Java and Java ME -- and later,
Android
.
This project began as a 20% project and is not yet complete, so opening it up is a bit of an experiment. It's not yet the
Best Barcode Reader
Ever
, but it's looking pretty good. For now we want to find those those who can make use of and help improve what's here, so that those good ideas are shared to all developers and everybody wins.
Developers can find the
ZXing
project on Google Code, and we hope you'll join us on our
Google Group
and tell us about what you like and don't like about the code.
Weekly Google Code Roundup: The Androids are openly social
Friday, November 16, 2007
By Dion Almaer, Google Developer Programs
I just have to take a breath as I start this posting. The last couple of weeks have been a real trip as we first announced
OpenSocial
and then
Android
, both announcements that have drawn a lot of interest.
Let's start with Android. We started out
announcing
the
Open Handset Alliance
and made sure people realise that this effort is bigger than a Google Phone. It is a mobile platform, with many phones to come! After some of the initial surprise we released the part that you, as a developer, care about:
Android SDK
.
We have been astonished at the response. We now have over
three and a half thousand
messages on the
Google Group
with four thousand members. The discussion has been all over the map, from initial Eclipse setup, to discussing the
sample code
, to working on how to
write native applications on the platform
.
We have plenty of material for you to absorb, but a great way to start it:
Take a look at the applications and UI that is already out there
Let Mike walk you through the platform
Watch Dan build an application
We are so excited to see the developer interest, and can't wait to see the applications that
win money from the $10M prize pool
.
Finally, to show how open platforms propel themselves, we got to release
open drivers for the QualcommMSM7K
.
It's the social
Just before the Android launch, we
unveiled the group
that worked together to create the
OpenSocial APIs
.
We have only just begun here, and the current API is a baby 0.5 release, but it is contagious to see the container and social developers work together. Patrick Chanezon sat down and
chatted with us about the new APIs
and the
Campfire One announcement
shows you a lot.
To enable developers to get containers going quickly we have put out an opensource
container sample
and have also seen the beginnings of
Apache Shindig
, another potential container.
The container partners are coming online quickly. We have already seen the
hi5, Ning, and Plaxo sandboxes go live
and more are coming.
To get a feel for the various containers and applications that have already been developed, check out
video interviews
that tell the story nicely.
And in other news...
Android and OpenSocial are not the only bits of news out there. Let's have a quick roundup:
Gmail got a backend
facelift
and we announced a new
email migration API
.
There are a couple of fun new open source projects announced:
AxsJAX
aims to make accessible Ajax applications more possible, and
nsscache
is an open source named services system.
We put together a nice piece on
a spider's view of Web 2.0
which discusses SEO principles and how Web 2.0 practices affect, or do not affect them. What about Web -1.0? That is discussed in this great tech talk on
the Web that wasn't
. A nice history lesson.
I got to host my first tech talk at Google. I was lucky enough to pull in Steve Souders, Chief Performance Yahoo!, to discuss
High Performance Web Sites and YSlow
. If you want to make sure your sites run well, check out his core principles.
Oh, and one other thing. The Google Code team did a huge amount of work in
revamping Google Code
which coincided with the major launches. We believe that the site is a lot cleaner now, and gives us a base to work on as we move forward to do a better job at serving all developers out there. Thanks for joining us so far.
As always,
check out the latest tech talks
,
subscribe to the Google Developer Podcast
and visit
the Google Code YouTube channel
.
Each and every email
Thursday, November 15, 2007
By Ryan Propper, Google Apps Team
With hundreds (if not thousands) of popular email clients and mail servers out there, importing email into another service can be challenge, especially when you consider the troves of old email most people save. To ease this pain, we created the
Google Apps Email Migration API
.
This new API is available in
Google Apps
Premier, Partner, and Education Editions, and you can use it to migrate your existing email from anywhere into Google Apps. Let's say, for example, you want to import email from your Obscurix Email Server v2.0001715. Just write some parsing code and use our simple API to upload that email into the desired mailbox. For convenience, you can authenticate to the API not only as the end user of the destination mailbox, but also as a Google Apps administrator, and target any mailbox in the domain. This API uses the
Google data API protocol
, which means there are a
host of client libraries
to make importing even easier.
LimitNone (one of our
Enterprise Professional partners
) has already built a
migration utility
that works with calendars, email and contacts.
For more info, check out the
Google Enterprise Blog
, or just dive right into the
developer's guide
. And please,
let us know what you think
!
Introducing AxsJAX -- Access-Enabling AJAX
Tuesday, November 13, 2007
Posted by Charles L. Chen and T.V Raman
As the developer behind
Fire Vox
I've always wanted to make AJAX web applications truly usable for the blind and visually impaired. The challenge is that these users have to deal with a much higher learning curve than sighted users. Instead of simply learning the controls for a web application, they have to also learn how to get their assistive technology of choice to go to the interesting parts of that application to find out what is currently there.
When I started as a Noogler, I was extraordinarily impressed with the tools that
T.V. Raman
had built into
Emacspeak
for efficiently performing specific tasks. An insight that I gained from watching him use Emacspeak is that the application should just say the right thing in response to user actions; users should not have to do an action in the application and then use their assistive technology to go hunting around the screen to figure out what happened.
In my first week at Google, I discovered
Google Reader
a highly optimized feed reader with very good keyboard support. For my starter project at Google, I decided to access-enable this application using
W3C ARIA
. Using Greasemonkey, I could inject JavaScript code to add the needed ARIA bits to make Google Reader say the right things at the right time.
Connecting The Dots
Based on the experience of access-enabling Reader, we have now refactored the code to come up with a common JavaScript framework for enhancing the accessibility of AJAX applications. This framework is called
AxsJAX
, and it was refined in the process of access-enabling Web Search.
We're now excited to open-source this framework since we believe that there is nothing Google-specific in the techniques we have implemented. We invite the Web developer community to help us collectively define a robust framework for rapid prototyping of accessibility enhancements to Web 2.0 applications.
The ability to rapidly prototype end-user interaction has led to an explosion in the number of AJAX applications; until now, visually impaired users have been left behind in this process. We hope that the AxsJAX framework encourages the Web community to bring the power of Web 2.0 development to solving the problem of accessing rich Web interaction in an eyes-free environment.
Android SDK, MSM7K kernel patches and blog now available
Monday, November 12, 2007
Posted by: Chris DiBona, Open Source Programs Manager
Many of those subscribed to this blog have heard our recent
announcement
about the
Open Handset Alliance
, and we thought we'd bring everyone up to date. Today, the team released an early look at the
Android SDK
for developers interested in building applications for Android.
By the way, we've released more than just the SDK. Those of you who follow the development of the Linux kernel on ARM may have seen that we released our initial patches that provide kernel support for the
QualcommMSM7K
. This release means that support in the Linux kernel is now available for the on board serial, i2c, timer, NAND flash controller, MDP/MDDI framebuffer, gpio controller, and high speed USB client controller. This code also provides access to the baseband features of the chip. The announcement to the kernel developer community can be found on the
ARM Linux
mailing list. Like all proper Linux kernel code, these patches were released under
v2 of the GNU GPL
. Stay tuned for more open source related details.
We're really excited about all of these developments and can't wait to see what results. To help get things started, we've also announced the
Android Developer Challenge
, a $10 million challenge to reward developers for working with the platform. Head over the
Android Developers blog
to find out more about this exciting mobile platform.
nsscache: open source named services system release
Monday, November 5, 2007
By Jamie Wilkinson and V Hoffman, Systems Administrators
Remember remember the fifth of november, especially if you have to manage unix Named Services (NSS) on a lot of workstations! We're releasing a small python utility, called
nsscache
, that is used to cache remote NSS maps locally on a given host. Combined with cron, it provides a simple and effective way to remove a critical network dependency from your hosts and potentially speed things up a bit.
You'd be surprised how upset a system can get with a slow, unresponsive, or missing NSS.
This initial release supports pulling passwd, shadow, and group maps from an RFC 2307 LDAP schema and storing them in either nssdb or flat text files. In a wee bit, we'll also release support for netgroup and automount maps as well. The utility is fairly plug and play; our hope is that folks who use it with other data sources (sql databases, soap, etc) and possibly other data stores will extend our codebase and share their extensions with the rest of the open source community.
Why you may be interested?
As soon as you have more than one machine in your network, you want to share usernames between those systems. Linux administrators have been brought up on the convention of LDAP or NIS as a directory service, and /etc/nsswitch.conf, nss_ldap.so, and nscd to manage their nameservice lookups.
Even small networks will have experienced intermittent name lookup failures, such as a mail receiver sometimes returning "User not found" on a mailbox destination because of a slow socket over a congested network, or erratic cache behaviour by nscd. To combat this problem, we have separated the network from the NSS lookup codepath, instead using an asynchronous cron job and a glorified script, improving the speed and reliability of NSS lookups.
We'll be giving a small presentation about our motivations and experiences at the upcoming
linux.conf.au
event in Melbourne Australia, if you happen to be down under in February!
Google Developer Podcast Episode Eleven: OpenSocial with Patrick Chanezon
Friday, November 2, 2007
By Dion Almaer, Google Developer Programs
The announcement of the OpenSocial project is really exciting, so I was really glad to drag Patrick away from his work to take some time to chat with me about it.
Using iTunes?
Patrick is easy to talk too, and I think that comes across in the interview itself. There has been a lot of pre-release speculation on what OpenSocial really is, and the press has put out wildly different ideas over the last couple of weeks. Patrick lays out the facts of the announcement.
He covers a lot, including:
What has actually been released
What OpenSocial
isn't
Details on the various APIs:
People Data API
: You can get access to owners and viewers, and their friends
Persistence Data API
: Store simple hash table data for the users using your application
Activities Data API
: Like the Facebook News feed
What it means to be an OpenSocial "container"
Fun social apps that Patrick has seen developed by the trusted testers
Sit back and listen to Patrick's dulcet French tones as he takes you through all things OpenSocial.
You can
download the episode directly
, or
subscribe to the show
(
click here for iTunes one-click subscribe
).
Also, check out video from the
Campfire One
event and interviews with a subset of the partners involved in the OpenSocial launch. Having a large number of application developers and container vendors show what they have already done gives you a glimpse to the future.
Now I want to record the next podcast
by the fire
.
Can I please have s'mores
Thursday, November 1, 2007
By Andrew Bowers, Google Developer Programs
When Vic asked me to organize a campfire on campus, at first I thought he was joking. But when he kept asking how big the fire was going to be, I quickly realized he wasn't. Thus
Campfire One
was lit.
Campfire One is a means to share product announcements with lots of people in a way which keeps pace with Google's release cycle. We invite a few people to campus and record our news for the web. There's no Campfire Two, just another Campfire One in the future. The 'One' signals that we've flipped the bit on something we think is worth sharing.
Tonight at Campfire One we were very excited to introduce
OpenSocial
, a common set of APIs for building social applications across the web. With OpenSocial, developers have less to learn in order to build for multiple websites. There are a
number of companies
already working on the OpenSocial APIs, including those who presented with us tonight: MySpace, Ning, hi5, iLike, FotoFlexer, RockYou, Slide, Viadeo, Flixster, LinkedIn, Ning, Salesforce, Theikos, and Virtual Tourist. Watch Campfire One from earlier this evening:
By the way, did you know that oak on a campfire is supposed to smoke less than fir? I don't think some of our presenters believe it. You might say we had a bit of a real '
smoke test
' before rolling the cameras.
My How We've Grown
Thursday, November 1, 2007
By DeWitt Clinton, Google Developer Programs
In 2005 we launched
Google Code
to provide a home for our developer and open source programs. Two years, dozens of new products and new programs, and one major redesign later, Google Code is bigger and more dynamic than ever. With today's relaunch we've added a new search auto-complete feature (to help you find your favorite products with a keystroke or two in the search box), an expanded and improved
search results page
, a cleaner and more comprehensive
site directory
, new blog and group gadgets, and a simplified and unified look and feel for
product documentation
.
To get a sense of how far things have come you can take a look at
the first version of Google Code
, back when the whole site almost fit on one page. Today we have thousands and thousands of pages of content on Google Code, and we've added the new site directory and new search features to help you navigate them.
One of the most exciting things about the redesign is that everything you see here was built using technology and APIs that are available to everyone. The pages we're serving don't rely on any secret back-end tricks; the site is built on plain HTML, JavaScript and CSS, each using our public APIs. In fact, all of the techniques used on Google Code can be duplicated on your own site.
For example, the search results pages use a combination of the
AJAX Search API
and
Custom Search Engines
. The homepage gadgets use the
AJAX Feed API
and
Google Reader
feeds. The videos are powered by the
YouTube API
, the blogs by the
Blogger API
, the events powered by the
Google Calendar API
, the metrics by
Google Analytics
, the forums by
Google Groups
, etc., etc.. And we're pleased to use
jQuery
, the wonderful open source JavaScript library (not ours, we're just fans), to help power each page. Stay tuned -- over the upcoming weeks we'll offer detailed articles and tutorials about how we built the various parts of Google Code using open technologies.
But the best thing about Google Code hasn't changed: And that's you, the developer, our never-ending source of inspiration. Your projects provide countless examples for the
Featured Projects
feeds, your words and wisdom power the
developer groups
, and your accomplishments and ideas never cease to amaze us with the possibilities and potential for a better web. This redesign was for you, and I want to personally thank all of you for being such an integral part of Google Code. Together we're capable of doing something very special.
Please join us on the
Google Code Blog
, (where we'll be enabling comments for this and future posts), and let us know where you're headed and how we can help you get there.
Labels
.app
.dev
#30DaysOfFlutter
#AIY
#CSEdWeek
#devfest18 #devfeststories #gdg #googledevelopers #developers #community
#freeandopen
#GDC20
#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments
#growwithgoogle
#io12
#io13
#io14
#io15
#io16
#io17
#io18
#io2012
#io2013
#io2014
+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
animation
Announcement
announcements
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
apple
Application Development
apps
apps script
AR
ARCore
area 120
artifact management
Artificial Intelligence
asia
assistant
atom publishing protocol
Audio
augmented faces
Augmented images
augmented reality
australia
Auth
authentication
authsub
automatic speech recognition
AutoML
awards
axsjax
barcodes
beacon
beacons
Belarus
bespin
best practices
beta
bigquery
bitcoin
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
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
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
Czechia
DA
danish linux forum
dart
Data Compression
Data science
Data Visualization
database
Databases
Dataset
Datasets
datastore
dataviz
Daydream
deprecation
Depth
design
desktop
desktop apps
Dev Tools
devart
develop
developer
Developer Advocate
Developer Communities
Developer Culture
developer expert
developer features
Developer Keynote
Developer Preview
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
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
endpoints
enterprise
Entity Extraction
entrepreneurs
Error logging
Estimator
Estimators
estonia
Ethics
Europe
event
events
evolution
execution api
extensions
Fabric
face detection
Fairness
fairness in machine learning
faster web
FCM
FCP
featured
feeds
finance
fintech
Firebase
Firebase Analytics
Firebase Cloud Messaging
Firebase Dynamic Links
firebug
firefox
firestore
firevox
firstbeta
fitness
flutter
Flutter 1.2
Flutter 1.5
Flutter 1.9
Flutter at IO
Flutter Clock
Flutter Create
Flutter for desktop
Flutter for web
Flutter Interact
Flutter Live
flutter release preview 1
flutter release preview 2
Follow Us
font api
Fonts
fosdem
founders
freebsd
freenet
Fridaygram
fusion tables
G Suite
G Suite Developer
G+
gadgets
Game Developers Conference
games
gaming
gcc
gci
GCP
GDA
gdata
GDC 2020
GDC17
GDD
gdd07
gdd08
gdd09
GDD11
GDE
gdg
gdl
gdl weekly
gears
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 apps
google apps api
google apps for your domain
google apps marketplace
Google AR
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 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 Groups
Google Developer Scholarship
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 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 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 Developer
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
Handwriting
hangouts
Hangouts Chat
Hangouts Chat API
haproxy
Headset
hg
hibernate
howto
hpux
html
html5
http
I/O
I/O 17
I/O 2017
I/O Extended
I/O Live
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 Games Accelerator
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
IWD 2020
jaiku
japanese
java
javascript
jetpack
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
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
maps
maps apis
Marketplace
material
material components
material design
MDL
MediaPipe
meetup
mercurial
Mexico startups
Micronaut
Microservices
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
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
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
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
React
reader
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
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-in
silverstripe
SIMD
sitemaps
sites api
sixapart
sketchup
Slides API
small business
small businesses
small-business
Smart Home
Smart Lock for Passwords
soap search api
soc
social
social graph
solaris
solutions challenge
souders
spa2007
Space
spdy
speakers
speech
speed
speed tracer
Spring
spyware
Stable release
Stackdriver
standards
startup
Startup accelerator
startup africa roadtrip
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
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
UX
verification
video
videos
Vim
virtual keyboard
virtual reality
visualization
voice
voice kit
voice user interface
VR
VUI
wattpad
Wearables
Weave
web
web animations api
web apps
web components
web design
web designer
web development
web exponents
web fonts
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 developers
Women in Tech
Women Tech Makers
women techmakers
WomenTechmakers
writing
wtm
xauth
yahoo
young developers
Young Makers
youtube
zlib
zurich
ZXing
Archive
2021
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.