Note: all launches are applicable to all Google Apps editions unless otherwise noted
whatsnew.googleapps.com
Get these product update alerts by email
Subscribe to the RSS feed of these updates
October 22nd, 2014 | Published in Google Apps
October 22nd, 2014 | Published in Google Blog
A sampling of Assists |
October 22nd, 2014 | Published in Gmail (Google Mail)
A sampling of Assists |
October 22nd, 2014 | Published in Google Maps
October 22nd, 2014 | Published in Google Earth
October 22nd, 2014 | Published in Google Adsense
October 22nd, 2014 | Published in Google DoubleClick
October 21st, 2014 | Published in Google Apps, Google Docs
October 21st, 2014 | Published in Google Open Source
October 21st, 2014 | Published in Google Earth
October 21st, 2014 | Published in Google DoubleClick
October 21st, 2014 | Published in Google Online Security
October 20th, 2014 | Published in Google Android
By Ankur Kotwal, Developer Advocate
Android 5.0 Lollipop is the biggest update of Android to date, introducing an all new visual style, improved performance, and much more. Android 5.0 Lollipop also extends across screens big and small, including phones, tablets, wearables, TVs and cars, to give your users access to information when they need it most.
To get you started on developing and testing on Android 5.0 Lollipop, here are some of the developer highlights with links to related videos and documentation.
You can get started developing and testing on Android 5.0 right away by downloading the Android 5.0 Platform (API level 21), as well as the SDK Tools, Platform Tools, and Support Package from the Android SDK Manager.
Check out the DevByte video below for more of what’s new in Lollipop!
October 20th, 2014 | Published in Google Apps
October 20th, 2014 | Published in Google Blog
Last year Robert Thomson, CEO of News Corp, accused Google of creating a “less informed, more vexatious level of dialogue in our society.” Given the tone of some of your publications, that made quite a few people chuckle.
This week you were at it again. One of your newspapers, The Wall Street Journal, accused Google of wielding undue political influence. Blimey!
More seriously, given the inaccuracies that have been published, we wanted to give our side of the story. Here goes.
Wall Street Journal:
As the FTC has said, the Journal “makes a number of misleading inferences and suggestions about the integrity of the FTC’s investigation. The article suggests that a series of disparate and unrelated meetings involving FTC officials and executive branch officials or Google representatives somehow affected the Commission’s decision to close the search investigation in early 2013. Not a single fact is offered to substantiate this misleading narrative”.
We understand you have a new found love of the regulatory process, especially in Europe, but as the FTC’s Bureau of Competition staff concluded, Google has strong pro-competitive arguments on our side. To quote from their report “… the record will permit Google to show substantial innovation, intense competition from Microsoft and others, and speculative long-run harm”.
And the FTC was not alone when it comes to search ranking and display. The Texas and Ohio Attorneys General closed their comprehensive competition investigations into Google in 2014. And courts in Germany and Brazil found that there is no basis in the law for Google competitors to dictate Google’s search results.
The Long-term Revenue Framework below is a simple, but powerful framework to help you understand the four levers that can help you to grow your site. With this framework, consider your site optimization efforts in terms of the four levers outlined below.
At the highest level, to help grow your site’s revenue, try focusing on attracting more unique users and/or increasing the value of the users already visiting your site. To earn more from your existing users, you can maximize the value of each page view, get visitors to look at more pages and visit your site more often. Let’s look at each of these levers in more detail.
Growing the number of unique users starts with understanding your site’s traffic. Check your Google Analytics reports to see where your visitors are coming from and what content on your site drives the most traffic. You can use these insights to create compelling content that users can find and share.
To help maximize the value of each page view, try focusing on two areas. First, make sure your ads get seen by placing them near the content users are paying attention to. Next, increase competition for the ads on your website by following these best practices:
3. Page views per visit (Depth of visit)
To encourage visitors to look at more pages and spend more time on your site, clearly demonstrate the value of your content. Create a great first impression by making sure the information your visitors are looking for is the first thing they see.
You can further increase your site’s page views per visit by showing your visitors that you have more great content they’d be interested in. You can achieve this by showcasing related or popular content near the end of the main content of the page.
4. Visits per user (Loyalty)
Creating a loyal user base is all about conveying to users that your site is regularly updated with new and interesting content. You can build loyalty by asking your visitors to subscribe to your email newsletter or social media channels.
We hope this framework is useful when thinking about how to grow your website’s traffic and revenue. Let us know what you plan to do using the Long-term Revenue Framework in the comments section below.
Posted by Adam Coelho – User Experience Strategist
Was this blog post useful? Share your feedback with us.
For 7 weeks in December 2014 and January 2015, I worked with OpenMRS in the Google Code-in (GCI) competition. GCI introduces highschool aged kids to open source software development by providing a wide variety of tasks we can complete. For me, it has worked wonders. I’d been interested in the concept of open source software for about a year and even participated in GCI 2013, but this year, the experience turned my interest into a passion. I worked on many new things, met lots of new people, and learned several important skills along the way.
By Chaitya Shah, GCI grand prize winner
Today, we want to share some best practices on using the OpenGL Shading Language (GLSL) that can optimize the performance of your game and simplify your workflow. Specifically, Layout qualifiers make your code more deterministic and increase performance by reducing your work.
Let’s start with a simple vertex shader and change it as we go along.
This basic vertex shader takes position and texture coordinates, transforms the position and outputs the data to the fragment shader:
attribute vec4 vertexPosition; attribute vec2 vertexUV; uniform mat4 matWorldViewProjection; varying vec2 outTexCoord; void main() { outTexCoord = vertexUV; gl_Position = matWorldViewProjection * vertexPosition; }
To draw a mesh on to the screen, you need to create a vertex buffer and fill it with vertex data, including positions and texture coordinates for this example.
In our sample shader, the vertex data may be laid out like this:
struct Vertex { Vector4 Position; Vector2 TexCoords; };
Therefore, we defined our vertex shader attributes like this:
attribute vec4 vertexPosition; attribute vec2 vertexUV;
To associate the vertex data with the shader attributes, a call to glGetAttribLocation
will get the handle of the named attribute. The attribute format is then detailed with a call to glVertexAttribPointer
.
GLint handleVertexPos = glGetAttribLocation( myShaderProgram, "vertexPosition" ); glVertexAttribPointer( handleVertexPos, 4, GL_FLOAT, GL_FALSE, 0, 0 ); GLint handleVertexUV = glGetAttribLocation( myShaderProgram, "vertexUV" ); glVertexAttribPointer( handleVertexUV, 2, GL_FLOAT, GL_FALSE, 0, 0 );
But you may have multiple shaders with the vertexPosition attribute and calling glGetAttribLocation
for every shader is a waste of performance which increases the loading time of your game.
Using layout qualifiers you can change your vertex shader attributes declaration like this:
layout(location = 0) in vec4 vertexPosition; layout(location = 1) in vec2 vertexUV;
To do so you also need to tell the shader compiler that your shader is aimed at GL ES version 3.1. This is done by adding a version declaration:
#version 300 es
Let’s see how this affects our shader, changes are marked in bold:
#version 300 es layout(location = 0) in vec4 vertexPosition; layout(location = 1) in vec2 vertexUV; uniform mat4 matWorldViewProjection; out vec2 outTexCoord; void main() { outTexCoord = vertexUV; gl_Position = matWorldViewProjection * vertexPosition; }
Note that we also changed outTexCoord from varying to out. The varying keyword is deprecated from version 300 es and requires changing for the shader to work.
Note that Vertex Attribute qualifiers and #version 300 es
are supported from OpenGL ES 3.0. The desktop equivalent is supported on OpenGL 3.3 and using #version 330
.
Now you know your position attributes always at 0 and your texture coordinates will be at 1 and you can now bind your shader format without using glGetAttribLocation
:
const int ATTRIB_POS = 0; const int ATTRIB_UV = 1; glVertexAttribPointer( ATTRIB_POS, 4, GL_FLOAT, GL_FALSE, 0, 0 ); glVertexAttribPointer( ATTRIB_UV, 2, GL_FLOAT, GL_FALSE, 0, 0 );
This simple change leads to a cleaner pipeline, simpler code and saved performance during loading time.
To learn more about performance on Android, check out the Android Performance Patterns series.
Posted by Shanee Nishry, Games Developer Advocate
+Android Developers
Check out the Help Center links below for more information.
Release track:
Rapid release and Scheduled release
For more information:
Custom app urls
Web address mapping
Group renaming
Note: all launches are applicable to all Google Apps editions unless otherwise noted
Launch release calendar
Get these product update alerts by email
Subscribe to the RSS feed of these updates
Google Data is the only site where you can get news from 60+ official Google blogs all in one place. We have published 22,104 official posts since January 2005.