Author PhotoBy Scott Knaster, Google Developers Blog Editor

The Google Transparency Report is designed to point out government censorship, requests to Google for data, and other details about our information services. The newest report, just out this week, shows that government requests for content removal have reached a new high level, with more than 2200 requests received in the second half of last year.

Government removal requests are probably the best known part of the Transparency Report, but there’s plenty of other fascinating and useful data. For example, you can see information about removal requests for specific URLs from copyright owners, or read about the legal process that takes place when a government organization or court requests information about a user. You can learn a lot by spending some time with the Transparency Report.

If you’re on the U. S. East Coast this spring and summer, you won’t need a report to tell you that massive numbers of cicadas are emerging from their underground homes to breed, fill the skies, annoy countless humans, last a few weeks, then die (and annoy even more humans who have to clean them up). This year’s bunch are Magicicada septendecim, or periodical cicadas with a 17-year life cycle. So we can look forward to a similar event in 2030.

Finally, if you haven’t already played with the Earth Day Doodle from last Monday, consider taking a few minutes this weekend to enjoy it. You might find yourself mesmerized by the tranquil scene (cicadas not included).

Fridaygram is mostly about fun and informative stuff that’s not related to development, but we seriously want to congratulate Googlers Peter Norvig and Arun Majumdar on their election to the American Academy of Arts and Sciences. Arun runs Google’s energy strategy as vice president of energy, and Peter is our director of research, although he’s also known for his whimsical take on presentations and technology.

Author Photo
By Jeff Kaufman, Software Engineer, Make the Web Faster Team

When we released mod_pagespeed in 2010, we gave webmasters a way to speed up their sites without needing to become web performance optimization experts. As an Apache module, however, it was unavailable to sites running Nginx, the popular high performing open source web server that powers many large web sites. Today that changes: we're releasing PageSpeed Beta for Nginx, aka ngx_pagespeed.

Running as a module inside Nginx, ngx_pagespeed rewrites your webpages to make them faster for your users. This includes compressing images, minifying CSS and JavaScript, extending cache lifetimes, and many other web performance best practices. All of mod_pagespeed's optimization filters are now available to Nginx users.

ngx_pagespeed logo
After three months of alpha testing on hundreds of sites, ngx_pagespeed has proven its ability to serve production traffic. It's ready for beta, and it's ready for you to start using it on your site.

MaxCDN, a content delivery network provider, recently published a blog post on their experience testing ngx_pagespeed: “With PageSpeed enabled, we shaved 1.57 seconds from our average page load, dropped our bounce rate by 1%, and our exit percentage by 2.5%. In sum, we squeezed out extra performance with nothing but a few extra lines in our nginx config files... We are continuing to test the module with the PageSpeed team, and our goal is to make it available across our CDN and to all of our customers – stay tuned!”

ZippyKid, a popular WordPress hosting provider, is also one of the early beta testers of ngx_pagespeed: “PageSpeed for ZippyKid is the world’s first WordPress optimization service powered by ngx_pagespeed, designed to automatically apply web performance best practices to deliver fast WordPress sites. Our benchmarks indicate that PageSpeed for ZippyKid will deliver up to a 75% reduction in page sizes and a 50% improvement in page rendering speeds.”

Development of ngx_pagespeed is open source, with contributions by developers from Google, Taobao, We-Amp, and many other individual volunteers. Thanks everyone for helping us reach the Beta milestone!

To start using ngx_pagespeed, follow the installation instructions on GitHub.

Jeff Kaufman works on PageSpeed, an open-source server module that helps make the web faster, and is interested in experiment measurement. He also plays for contra dances, organizes other dances, and blogs about dancing, giving, and tech.

Posted by Scott Knaster, Editor

Author PhotoBy Seth Ladd, Developer Advocate

Sometimes, you only have 5 minutes. Luckily, with the Dart Tips series of short video tutorials, that's all you need to start learning the new Dart language and libraries. In these videos, I show off code samples and examples across the various language features of Dart.

For example, here's a quick demo of the various types of constructors in Dart:

You can check out all the videos, or jump to the topic that most interests you:
  1. A simple Dart script
  2. Runtime modes
  3. Variables
  4. Strings, numbers, booleans, oh my!
  5. Collections in Dart
  6. Functions are fun, Pt 1
  7. Functions are fun, Pt 2
  8. Control flow statements
  9. Exceptions
  10. Classes: setters & getters
  11. Classes: Constructors
We hope you enjoy these videos about Dart. If you have questions or comments about the videos, or Dart, please join us on the Dart mailing list and on Google+. As we say on Dart Tips, stay sharp!

Seth Ladd is a Developer Advocate on Dart. He's a web engineer, book author, a conference organizer, and loves a game of badminton.

Posted by Scott Knaster, Editor

By Stephanie Taylor, Open Source team

Cross-posted from the Official Google Blog

If you’re a university student with CS chops looking to earn real-world experience this summer, consider writing code for a cool open source project with the Google Summer of Code program.

Over the past eight years more than 6,000 students have “graduated” from this global program, working with almost 400 different open source projects. Students who are accepted into the program will put the skills they have learned in university to good use by working on an actual software project over the summer. Students are paired with mentors to help address technical questions and concerns throughout the course of the project. With the knowledge and hands-on experience students gain during the summer they strengthen their future employment opportunities in fields related to their academic pursuits. Best of all, more source code is created and released for the use and benefit of all.

Interested students can submit proposals on the website starting now through Friday, May 3 at 12:00pm PDT. Get started by reviewing the ideas pages of the 177 open source projects in this year’s program, and decide which projects you’re interested in. Because Google Summer of Code has a limited number of spots for students, writing a great project proposal is essential to being selected to the program. Be sure to check out the Student Manual for advice.

For ongoing information throughout the application period and beyond, see the Google Open Source blog, join our Summer of Code mailing lists or join us on Internet relay chat at #gsoc on Freenode.

Good luck to all the open source coders out there, and remember to submit your proposals early—you only have until May 3 to apply!

Written by Stephanie Taylor, Open Source team

Posted by Scott Knaster, Editor

Author Photo
By Ram Ramani, Engineering Manager

PageSpeed Service (PSS) is an online service to speed up the rendering of your web pages by rewriting and serving them through Google. While PSS’s optimization techniques benefit most platforms and browsers, today I’d like to focus on some of the PSS rewriters that are especially effective on mobile web pages. PageSpeed Service optimizes the web pages in such a way that users can start viewing and interacting with your pages as soon as possible.

Prioritize Critical CSS: To avoid page reflows, modern browsers do not render pages until the CSS is downloaded and parsed. These CSS files are often tens of KBs because they include all the styles needed for the entire site. These blocking requests are especially bad on mobile devices, where network round trip times are high. The Prioritize Critical CSS rewriter speeds up rendering by identifying the minimal CSS required to render that page and including it in the HTML file. This not only saves an extra round trip to download additional files but also reduces the CPU consumed by the browser. Finally, a reference to the original CSS file is included at the end of the page to lazy-load the non-critical CSS.

Defer JavaScript: The HTML specification requires the browser to stop, download, and execute each synchronous JavaScript file before proceeding to build and render the page - this requirement can significantly slow down rendering. PSS circumvents this behavior by rewriting the HTML to defer execution of all JavaScript until after the page is first rendered. This benefits pages that are mostly rendered via HTML markup rather than JavaScript.

Optimize Images: Mobile screens are almost always smaller than their desktop counterparts. Large, high quality images translate to excessive bytes on the wire, slowing down page loads. PSS can resize images on the server to fit required dimensions and re-compress them to the optimal format, without perceptible visual loss. For very large images above the fold, PSS can also inline a low quality preview image for initial rendering. Once the rest of the page content loads, it is replaced by the original image, creating a seamless experience. Furthermore, images below the fold can be lazy-loaded, which prevents them from competing with the rest of the page load.

PageSpeed Service includes several rewriters that speed up the rendering of web pages. Using PageSpeed Service, the mobile pages of TopNewsToday and Net1News are now 61% faster and 68% faster respectively. Alex Tsvetanov of TopNews Today says, “With Google PageSpeed Service, we increased our unique visitors and total pageviews by 100%, while reducing our bounce rate by 30%”. Massimo Romanello, CEO of Net1News says, "Thanks to Google PageSpeed Service, we have been able to reach 200,000 unique daily visitors with the same existing infrastructure and have made our site one of the quickest in the news sector".

PageSpeed takes just a few minutes to set up and requires no code changes on your site. Check out how much PageSpeed can speed up your site. I encourage you to try out these features by signing up for PageSpeed Service and letting us know what you think at

Ram Ramani is an Engineering Manager on the Make the Web Faster Team in Mountain View. He is a believer in "Faster is better".

Posted by Scott Knaster, Editor

Author Photo
By Scott Knaster, Google Developers Blog Editor

Just about two years ago, we said that Kansas City would be the first place to get very high speed Internet access from the Google Fiber project. This week we announced that Austin, Texas will be the next location for Google Fiber. Like Kansas City, customers in Austin will be able to get gigabit Internet and Google Fiber TV service. Many schools, hospitals, and other public buildings in Austin will get gigabit Internet at no charge.

If you live in Austin or Kansas City, and you want to find out more, take a look at the Google Fiber website. Or maybe you’ll want to plan to move to one of those cities.

Speaking of moving, the next time you’re moved by music, you might be interested to know what’s going on in your brain. Recent research shows that when people like a new song, the nucleus accumbens becomes active, while other parts of the brain work on pattern-matching and emotional connections. The more complex the activity among these various brain regions, the more the brain's owner likes a song, according to the research. Scientists are hoping to use this work to learn more about how we process all kinds of sounds, not just cool new tunes.

Finally, take some time this weekend to watch this amazing NASA video of Earth from orbit. It’s part of NASA’s Earth month, which includes a bunch of other images of our favorite planet that are also fun to look at. It’s sure to light up your brain.

With all its interplanetary travel, it’s nice of NASA to have a month just for us earthlings. And here on the blog, we’re happy to have Fridaygrams, which allow us to depart temporarily from developer world and just feature some random, nerdy, science-y stuff instead.

Author Picture By Ashleigh Rentz, Google Developers Blog Editor Emerita

With all of this week’s developer news, it’s easy to forget that Monday was April Fools’ day. As usual, Googlers channeled their playful spirits into creative new “features” for many of our products.  Did you spot them all?  Wikipedia has a recap list, featuring Google Trends’ “Cold Searches” (discover new unique things that nobody else is into!) and Google Analytics’ export support for even more external media options.

After we stopped fooling around, got serious and shared this animated sequence of what astronomers have observed happening to a massive gas giant planet somewhere around 20 times the size of Jupiter: a supermassive black hole 300,000 times the size of our sun has been ripping the planet apart!  (We’re all relieved to know it’s 47 million light years away from our much-beloved Earth.)

If perchance you take advantage of the weekend to catch up on your sleep, take special note of your dreams. Scientists in Japan have been carefully studying brain scans and reached a 60% success rate in identifying what images dreamers are “seeing”. Maybe soon we can finally answer one lingering question: Do Android developers dream of electric sheep?

Each week, Fridaygram brings you geek-friendly stories of interest to enjoy during your weekend. We can’t read minds, though. Just docs.

Author Picture By Marc Cohen, Google Cloud Platform team

Cross-posted with the Google App Engine blog

Starting today, Google Compute Engine is available to all customers who sign up for our Gold Support package. We’re also happy to announce a 4% reduction on all Compute Engine pricing.

In the nine months since announcing Compute Engine, customers have been using Google’s Infrastructure as a Service product and giving us valuable feedback. Sebastian Stadil of Scalr wrote, in a recent review:

“Google Compute Engine is not just fast. It’s Google fast. In fact, it’s a class of fast that enables new service architectures entirely.”

We’re happy to hear that, because one of our main goals in building Compute Engine is to enable a new generation of applications with direct access to the capabilities of Google’s vast computing infrastructure.

Based on user feedback, we’ve added a number of major features including:

  • The option to boot from persistent disks mounted as the root file system, persistent disk snapshots, the ability to checkpoint and restore the contents of network resident persistent disks on demand, and the ability to attach and detach persistent disks from running instances.
  • An improved administration console, the Google Cloud Console (preview), which allows you to administer all your Google Cloud Platform services via a unified interface. Here’s a screenshot of the new Cloud Console in action:
    Screenshot of Cloud Console
  • Five new instance type families (diskless versions of our standard instance types, plus diskful and diskless versions of high-memory and high-cpu configurations), with 16 new instance types.
  • Two new supported zones in Europe, which provide lower latency and higher performance for our European customers. We’ve also made it easy to migrate virtual machine instances from one zone to another via an enhancement to our gcutil command line tool.
  • An enhanced metadata server, with the ability to support recursive queries, blocking gets and selectable response formats, along with support for updating virtual machine tags and metadata on running instances (which enables dynamic reconfiguration scenarios).

While we've been hard at work developing new features, we've also had the opportunity to play. Check out the amazing World Wide Maze Chrome Experiment, developed by the Chrome team in Japan. This game converts any web site of your choice into an interactive, three dimensional maze, navigated remotely via your smartphone. Compute Engine virtual machines run Node.js to manage the game state and synchronization with the mobile device, while Google App Engine hosts the game’s web UI. This application provides an excellent example of the new kinds of rich, high performance back end services enabled by Google Cloud Platform.

With today’s announcement, we look forward to welcoming many new customers, and bringing exciting new applications to Google Cloud Platform!

Marc Cohen is a Developer Programs Engineer focusing on helping developers get the most out of Google’s advanced cloud computing technologies. He has over 25 years of experience designing and building reliable, distributed systems in the telecommunications industry. A Seattle resident, Marc enjoys programming, indie pop/rock music, blogging and teaching.

Posted by Ashleigh Rentz, Editor Emerita

Author Picture By Adam Barth, Chromium team

Cross-posted with the Chromium and Open Source blogs

WebKit is a lightweight yet powerful rendering engine that emerged out of KHTML in 2001. Its flexibility, performance and thoughtful design made it the obvious choice for Chromium's rendering engine back when we started. Thanks to the hard work by all in the community, WebKit has thrived and kept pace with the web platform’s growing capabilities since then.

However, Chromium uses a different multi-process architecture than other WebKit-based browsers, and supporting multiple architectures over the years has led to increasing complexity for both the WebKit and Chromium projects. This has slowed down the collective pace of innovation - so today, we are introducing Blink, a new open source rendering engine based on WebKit.

This was not an easy decision. We know that the introduction of a new rendering engine can have significant implications for the web. Nevertheless, we believe that having multiple rendering engines—similar to having multiple browsers—will spur innovation and over time improve the health of the entire open web ecosystem.

In the short term, Blink will bring little change for web developers. The bulk of the initial work will focus on internal architectural improvements and a simplification of the codebase. For example, we anticipate that we’ll be able to remove 7 build systems and delete more than 7,000 files—comprising more than 4.5 million lines—right off the bat. Over the long term a healthier codebase leads to more stability and fewer bugs.

Throughout this transition, we’ll collaborate closely with other browser vendors to move the web forward and preserve the compatibility that made it a successful ecosystem. In that spirit, we’ve set strong guidelines for new features that emphasize standards, interoperability, conformance testing and transparency.

To learn more about Blink visit our project page.

Posted by Ashleigh Rentz, Editor Emerita

Author Picture By Robert Do, Google Cloud Platform team

Cross-posted from the Google App Engine blog

Have you ever wanted to integrate SMS or voice communications into your app? We’ve been working with our friends over at Twilio to make it easier to do so. Today we’re announcing native Python and Java libraries for working with Twilio APIs onto Google Cloud Platform.

Lots of apps on App Engine have already been built with phone functionality. Check out the sample code for a group messaging app and the sample code for an app that dispatches voicemails and SMS messages to PagerDuty. Learn how to send business cards via sms through this step by step guide.

You can start building voice and SMS features into your App Engine apps today. Together with Twilio, we’ll help you get started with 2,000 free text message or voice minutes.

Ready to get started?

  1. Sign up for App Engine.
  2. Get your Twilio account and 2,000 free text message or voice minutes.
  3. Check out our guide on how to integrate Twilio services into your app.

Here’s a quick peek at how easy it can be to send a text message from App Engine using Python. After installing the Twilio library, it just takes a few lines of code to send an SMS.

import webapp2
from twilio import twiml
from import TwilioRestClient
class SendSMS(webapp2.RequestHandler):
   def get(self):
       # replace with your credentials from:
       account_sid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
       auth_token = "xxxxxxxxxxxxxxxxxxxxxxxxxx"
       client = TwilioRestClient(account_sid, auth_token)
       # replace "to" and "from_" with real numbers
       rv = client.sms.messages.create(to="+14155551212",
                                       body="Hello Monkey!")
app = webapp2.WSGIApplication([('/send_sms', SendSMS)],

Posted by Ashleigh Rentz, Editor Emerita