Saturday, 22 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

To the Google developer community, 2012’s a wrap

Author Photo
By Phoebe Peronto, Developer Marketing

‘Tis the season to reflect on all that you have done this year: developers and other friends in the Google Developer community. From a Gangnam style-inspired app, to growing the GDG community beyond 330 active chapters, let’s just say that 2012 has been nothing short of amazing.

You have...

...helped Google I/O 2012 reach more than 13,000 developers by hosting over 50 I/O Extended events all over the world. Looking forward to Google I/O 2013!

...hosted a massive DevFest season, with 75 DevFests conducted in only 3 short months. During the season, these events reached over 14,000 developers in 39 countries worldwide.

...grown the GDG community to an astounding 335 active and incubating chapters in over 90 countries.

...attended dozens of Google+ Hangouts on Google Developers Live to learn more about how to make cool apps with Google tools and technologies.

...made countless great apps at DevFest hackathons.

Here’s to a great year, and many more to come!

Want to learn more? Find your nearest GDG chapter to get involved in local events, and connect with Google developers 24/7/365 on Google Developers Live and +Google Developers.

Phoebe Peronto is on the Google Developer Product Marketing team. Her mission is to make developer magic by sharing Google tools, technologies, and programs with the community to make super cool apps. She's also a foodie, globetrotter, and avid runner.

Posted by Scott Knaster, Editor

Friday, 21 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

PHP Cheat Sheet


No WebView required, with native YouTube Player API for Android

Author Photo
By Scott Knaster, Google Developers Blog Editor

This post is abridged and cross-posted from the YouTube API Blog.

Adding a high-quality video experience to your Android application just got a whole lot easier. Starting today, you can embed and play YouTube videos in your app using the new YouTube Android Player API.

The API, which was pre-announced at Google I/O 2012, offers these benefits:
We are launching the API as experimental, although we do not expect major interface changes going forward.

The only limit now is your imagination (and ToS)

These instructions explain how to include the API client library in your Android application. The library is supported on Android devices running version 4.2.16 or newer of the Android YouTube app. By including the library in your project, you can create rich video playback experiences through the ability to control and customize the video player. Flipboard, shown below, is a good example. See the full post for more cool app examples.


Learn more

If you would like to learn more about the YouTube Android Player API, read the full post on The YouTube API Blog. The post features several companies already using the API and contains useful links to source code examples and documentation. Alternatively, get started by watching some of the videos from our YouTube Android Player API playlist.

Scott Knaster is the Editor of Google Developers Blog. His programming books have been translated into several languages, including Japanese and Pascal.

Wednesday, 19 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

New mod_pagespeed: cache advances, progressive JPEGs

By Joshua Marantz, Jan-Willem Maessen, and Bharath Bhushan, PageSpeed Team

When mod_pagespeed launched in November 2010, one of its benefits was to help websites better exploit browser caching by signing URLs with the resource content hash. This improves the user experience coming back to the same site, and navigating within a site.

In mod_pagespeed 1.2 we have released two new features that improve the caching experience for users coming to a site for the first time: canonicalize_javascript_libraries and insert_dns_prefetch. For additional speedups, converting jpegs to progressive format has been added to the Core Filter Set, and the scope of optimization has been extended to include resources served by external servers, even if they are not running mod_pagespeed.

Your web page loads faster when JQuery is preloaded in users' browser

Numerous web sites use common JavaScript libraries such as jQuery and jQuery UI. But when one library is stored on many sites, browsers end up re-downloading that library for each new site – a waste of time and bandwidth. The new canonicalize_javascript_libraries filter in mod_pagespeed finds such libraries on your site and replaces them with links to the equivalent libraries on With the optimization, a browser will notice that your site is requesting the library from the same shared library provider as a previous site it visited, and will use the copy in its cache.

It’s possible to do this by hand, but there are a number of reasons why you might prefer to automate the process. Most important is that you may be using third-party code on your web sites that includes some of these libraries. Using canonicalize_javascript_libraries lets you replace these with hosted versions without having to touch third-party code. It also lets you use local, un-minified JavaScript source code for these libraries while you are debugging your site, and then transition automatically to using minified hosted code when you deploy. The filter spots external libraries using a hash signature; we’ve added a new configuration file, pagespeed_libraries.conf, that stores these signatures, so that you can upgrade the signature configuration without disrupting the rest of your apache installation.

Resolving DNS entries early for critical assets saves hundreds of milliseconds

DNS resolution time varies from <1ms for locally cached results, to hundreds of milliseconds due to the cascading nature of DNS. This can contribute significantly to total page load time. Below is a WebPagetest waterfall showing how DNS lookup time can affect page load time.

The new insert_dns_prefetch filter inserts <link rel="dns-prefetch"> tags to allow the browser to pre-resolve DNS for resources on the page. The waterfall below shows the improvement after inserting the hints.

<link rel="dns-prefetch"> is supported on Chrome, Firefox and Internet Explorer.

Improved performance by optimizing external resources and progressive JPEG

In addition to these new capabilities, mod_pagespeed 1.2 can proxy and optimize resources from trusted domains. This feature enables you to optimize resources even from servers that don't run mod_pagespeed. Beyond compressing and cache-extending such resources, this can improve performance of sites running SPDY where the best practices for performance are to serve all resources from the same domain (see mod_spdy).

Further, convert_jpeg_to_progressive is now a ‘core’ filter. Large JPEG images are now transcoded to progressive. This both improves the browser experience and makes such files smaller.

To see more details about the release, check out the release notes and mod_pagespeed download page.

Joshua Marantz runs Google’s PageSpeed team in Cambridge, MA, which is dedicated to making the web faster for everyone. Josh has been working on making software run fast for several decades, at Google and before that on accelerated chip simulation.

Jan Maessen wrote the earliest version of the image and JavaScript filters in mod_pagespeed and has been with the team ever since. Before joining Google, he was a co-designer and library implementer for the Fortress programming language.

Bharath Bhushan works on making website performance better. He has a Masters in CS from IIT Madras, India.

Posted by Scott Knaster, Editor

Putting Zürich before Århus

Author Photo
By Mark Davis, International Software Architect

Until now, it has been very difficult for web application designers to do something as simple as sort names correctly according to the user's language. And it matters: English readers wouldn’t expect Århus to sort below Zürich, but Danish speakers would.

Because linguistic sorting requires a sophisticated algorithm and lots of data, it was impractical to do this natively in JavaScript. Until now, the only full solution for sorting on the client side was to generate on a server a sortKey for every string that needed to be sorted, and send the sortkeys — base64-encoded — down to the client along with the strings. Pretty ugly! And what’s doubly frustrating is that the underlying operating systems have all been able to handle this, whether through International Components for Unicode (ICU) or Windows APIs.

The new internationalization specification for ECMAScript (the “official” name for JavaScript) changes this picture. It is already in the production version of Chrome, and is on track for other major browsers.

Linguistic sorting is not the only benefit—not only will users be able to see names sorted correctly, but also correct numeric values (“1,234.56” in English, but “1.234,56” in German), dates (“March 10, 2012” vs “10. März 2012”), and so on. While the results might not be precisely the same in every browser, they should be appropriate to the language, and are returned using a uniform API.

On any enabled browser — in its supported languages — web application developers can:
  • compare strings correctly: choosing whether or not to ignore accents, case differences, etc.
  • format numbers correctly: choosing decimal places, currencies, whether to use thousands-separator, etc.
  • format dates and times correctly: choosing decimal places, numeric vs named months, etc.
  • match locales: comparing the user’s desired locales (say Arabic and French) against the supported locales (say French, German, and English), to get the best match.
The API also allows for linguistic support in offline web applications, which wasn’t practical before. It builds on the industry standards BCP47 (for identifying languages and locales) and LDML (part of the Unicode Common Locale Data Repository (CLDR) project). For the gory details of the spec, see ECMA-402: ECMAScript Internationalization API Specification (just approved by the Ecma General Assembly).

Mark Davis is president and cofounder of the Unicode consortium, and founder of ICU and CLDR. Mark is fond of food, film, travel, and RPGs. Mark lived for 4 years in Switzerland, and is moving back in February.

Posted by Scott Knaster, Editor

Tuesday, 18 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

The simpler, yet more powerful new YouTube Data API

By Raul Furnică, Tech Lead; Vladimir Vuskovic, Product Manager; and Pepijn Crouzen, Software Engineer, YouTube API Team

This post is abridged and cross-posted from the YouTube API Blog.

Since its initial launch in 2007, the YouTube Data API has become one of Google’s most popular APIs by request volume, thanks to the awesome apps from developers like you. To help you make better integrated video experiences, you can now use the YouTube API version 3.0. The new API is easy to use thanks to rich client library support, improved tooling, reference documentation and integration with Google’s common API infrastructure. Version 3.0 only returns what you ask for and uses JSON rather than XML encoding for greater efficiency. The API introduces new core functionality including Freebase integration via topics, and universal search. If you develop social media management apps, you’ll love channel bulletin post and full subscriber list management, also new in this release. Version 3.0 of the API constitutes the API's biggest overhaul to date and we’re eager for you to try it today!

New functionality: Topics, universal search, and audience engagement support

Have you ever tried to search for YouTube videos only to find out that keyword search can produce ambiguous results? With the new Topics API, thanks to the power of Freebase, you can find exactly what you’re looking for by specifying Freebase topic IDs rather than search keywords.

For example, if you’re reading this post from outside of the US and you would like to search for content related to football, /m/02vx4 is probably the topic ID you're after. The API's universal search feature lets you retrieve channels, playlists and videos matching the topic with just one request like this one. Find out more in our Topics API Guide.

Version 3.0 introduces better tools to engage and interact with your YouTube audience. Social media management apps can now help content creators communicate with their channel subscribers using bulletin posts.

Learn more

If you would like to learn more about the YouTube API version 3.0, read the full post on The YouTube API Blog. The post covers efficiency improvements, features several companies already using version 3.0 and contains useful links to source code examples and documentation. Alternatively, feel free to get started by watching some of the videos from our YouTube API version 3 playlist.

Raul Furnică is the YouTube API Tech Lead, based in Zürich. He is a believer that API interfaces should be optimized for ease of use, not server implementation.

Vladimir Vuskovic is a Product Manager at Google, and manages YouTube APIs and uploads. He got his Ph.D. from the robotics institute at ETH Zurich.

Pepijn Crouzen is a Software Engineer on the YouTube API Team and he is based in Paris.

Posted by Scott Knaster, Editor

Women Techmakers for social good

Author Photo
By Phoebe Peronto, Developer Marketing

Last week on GDL Presents: Women Techmakers, we kicked off the series kicked off with a tour of the Kiva API from Chairwoman Julie Hanna, then followed with Code for America’s Jennifer Pahlka explaining her "Peace Corps for Geeks" and solving civic problems with technology. Sasha Laundy of Codecademy introduced us to scalable ways to teach the world to code, and the series culminated with Kim Polese – the first Product Manager for Java – sharing the value of open source technology for making innovation universally accessible.

Our latest group of Women Techmakers are using tech to drive real social change and we thank them for joining us. Read on for video highlights and news of #WTM’s global launch!

Last week: series highlights

Women Techmakers Give Back with chairwoman and technologist Julie Hanna walk us through a data visualization of Kiva’s global impact.

Women Techmakers Give Back with Code for America
Founder Jennifer Pahlka talks Code for America’s latest civic startups and her "Peace Corps for Geeks".

Women Techmakers Give Back with Codecademy
Codecademy’s Sasha Laundy introduces us to the easiest way to learn to code.

Women Techmakers Give Back with ClearStreet, Java
ClearStreet CEO and first Java Product Manager at Sun, Kim Polese, talks being a serial entrepreneur and maturing with a company to be an effective CEO.

This Week: We’re going global

Check out our latest interviews with women techmakers from Israel:

Thursday, 12/20: Women Techmakers & Rony Ross of Panorama Software | 2:30 pm PST | 22:30 UTC | Watch live | Add to calendar
Rony Ross is the Founder, Executive Chairman and Chief Technology Officer of Panorama Software Ltd. Join hosts Daniela Raijman-Aharonov, Engineering Manager and Software Engineer in Google Technical Infrastructure, and Michal Segalov, Software Engineer in Infrastructure, as they discuss Ross’ role in expanding Panorama’s global presence, once the leading developer and marketer of software products for OLAP and BI in the Israeli market.

Thursday, 12/20: Women Techmakers & Yael Karov of Ginger Software | 3:30 pm PST | 23:30 UTC | Watch live | Add to calendar
Yael Karov is the Founder and CEO of Ginger Software, a service built from Karov’s 20+ years of experience in the field of natural language processing and machine learning that helps users improve their online English language communication. Michal Segalov, Software Engineer in Google Technical Infrastructure, and Dana Gabel, Software Engineer in Google Identity & Knowledge, host Karov in the studio to talk about her successful track record in the commercial launch of innovative products to market.

Watch anytime, anywhere
Didn’t get a chance to tune in live? No worries. All of these sessions, plus the first WTM series are available at our new WTM home.

We’re taking techmaker nominations. Share with +Google Developers and @googledevs who you’d like to see on the next Women Techmakers series. Use hashtag (#WTM) and +mention your favorite maker women.

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

Friday, 14 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: Lady Ada Lovelace, evolving limbs, ancient labyrinth

Author Photo
By Scott Knaster, Google Developers Blog Editor

This week we celebrated the 197th birthday of computing pioneer Lady Ada Lovelace with a nifty Google Doodle. Among other accomplishments, Ada is credited with publishing the world's first algorithm for use with Charles Babbage’s Analytical Engine.

Coincidentally, also this week we launched the latest episodes in our Women Techmakers series on Google Developers Live. We're highlighting women who are making big social impacts through their innovations in tech. Please check it out.

In other areas of science this week, researchers in Spain used zebra fish to test an idea about limbs evolving from fins. The scientists ramped up the activity of a particular gene, which caused the fish to produce rudimentary limbs instead of fins. This might be an evolutionary clue about where our own arms and legs came from.

Finally, it looks like the mystery of line drawings in the Peruvian desert has been solved, according to Clive Ruggles, who is an archaeoastronomer (which might be the coolest job title ever) and archaeologist Nicholas Saunders. Ruggles says the drawings are a labyrinth, and "This labyrinth was meant to be walked, not seen". Well said, and in that spirit, we hope you get out and take a walk of your own this weekend, even if you don’t have an awesome ancient labyrinth nearby.

Each Friday on this blog we skip our usual developer topics and offer interesting (we hope) stuff that’s not directly related to writing code.

Thursday, 13 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

App Engine 1.7.4 released

Author PhotoBy the Google App Engine Team

Cross-posted from the Google App Engine Blog
The Google App Engine team has been busy putting together our final release of 2012. This release includes a number of features graduating from Experimental status as well as the usual batch of bug fixes and improvements. We’ll be taking a short break from our monthly release cycle over the holidays, but we’ll be back to our normal schedule starting in February.  

Expanded EU Support
We’re happy to announce that we are expanding European Union datacenter support, based on positive feedback from early users.  You can sign up here.  Please note, deployment is currently limited to billing-enabled applications.
We understand that data locality and latency are important to developers and are committed to further expanding this support in the coming months.

We've made a new Maven plugin available, added the source to the SDK for easier IDE debugging, and made significant performance improvements to the JSP compilation process.  Please see our Java release notes for more information.

We’ve made a big push to bring a number of new features to GA, upgraded the interpreter to version 2.7.3, and added several new experimental features.  For more details, please see our Python release notes.

New and Upgraded Features
We also have a handful of notable features in this release:

  • Task Queue statistics (General Availability): You can see statistics such as the current number of tasks in a queue, the number of tasks executed in the last hour, and more.
  • Traffic splitting (General Availability): You can split requests amongst different versions of your app.
  • LogsReader and Logs API (General Availability): You can now fetch requests based on a list of request IDs.
  • Expanded Datastore query support (Experimental): We’ve added ‘DISTINCT’ support to Datastore queries.

Full release notes and Google Cloud Platform newsletter
The complete list of features and a list of bug fixes for 1.7.4 can be found in our release notes. For App Engine coding questions and answers check us out on Stack Overflow, and for general discussion and feedback, find us on our Google Group.

Finally, to stay up to date with Google Cloud Platform, sign up for our newsletter where you’ll get the latest news, announcements and event information.

Written by the Google App Engine Team.

Posted by Scott Knaster, Editor

Monday, 10 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

Women Techmakers give back

Author Photo
By Phoebe Peronto, Developer Marketing

Our Women Techmakers series is back for round two on Google Developers Live (GDL)! In the spirit of the holidays, hosts Megan Smith of Google[x], Lacy Caruthers (Google Giving), Angela Lin (YouTube EDU), and Pavni Diwanji (Google+), sit down with women who are using their technical backgrounds to effect social change and make an impact. Join us in-studio Tuesday through Friday of this week at 2:30 pm PST to learn more about how Women Techmakers are giving back in big ways.

Tuesday, 12/11: WTM & Julie Hanna - Chairwoman, | 2:30 pm PST | 22:30 UTC | Watch live | Add to calendar

As a repeat entrepreneur, chairwoman of Kiva, startup and venture advisor, and angel investor, Julie Hanna knows about giving back. Her work at Kiva, a crowdfunding pioneer leading the micro-lending marketplace, has been integral in touching over 800,000 low-income entrepreneurs in over 60 countries, adding up to more than $350M loans delivered. Radhika Malpani and Anita Yuen of dive into Julie’s experience using her technical skills to make social change.

Wednesday, 12/12: WTM & Jennifer Pahlka - Code for America | 2:30 pm PST | 22:30 UTC | Watch live | Add to calendar

Code for America is a new kind of public service. Join hosts Chris DiBona and Lacy Caruthers in the GDL studio, as they sit down with Code for America founder and executive director Jennifer Pahlka to discuss how she is working on the technical side with web professionals and cities nationwide to promote public service and reboot government.

Thursday, 12/13: WTM & Sasha Laundy - Codecademy | 2:30 pm PST | 22:30 UTC | Watch live | Add to calendar

Codecademy makes learning code easy and collaborative. From Women Who Code and Codecademy, Sasha Laundy joins Bridgette Sexton of Google Ventures and Angela Lin for a discussion of how Codecademy makes learning code interactive, iterative, and fun. More minds are better than one!

Friday, 12/14: WTM & Kim Polese - ClearStreet Inc., Sun Microsystems | 2:30 pm PST | 22:30 UTC | Watch live | Add to calendar

ClearStreet Inc., a social finance startup, is focused on helping people eliminate debt and achieve long-term financial health. Chairwoman and original Java Project Manager at Sun, Kim Polese, speaks with Megan Smith and Pavni Diwanji about her experience as a leading Silicon Valley entrepreneur and technology executive, and how her work with ClearStreet is impacting users’ daily lives.

Catch up on the first WTM series while you're getting ready for this week's lineup. Visit the Google+ events to RSVP, add the episodes to your Google calendar, tune in live on GDL, and ask questions of our on-air guests. And, most importantly, become part of the conversation by hashtagging #WTM posts on Google+.

Watch Women Techmakers any time by visiting us at our new home. Tune in live, view archived episodes, and check out upcoming content.

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

Friday, 7 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: Global Impact, lunar mapping, transforming robot

Author Photo
By Scott Knaster, Google Developers Blog Editor

This week Google Giving launched the Global Impact Awards, to recognize and reward achievements that use technology to improve people’s lives. The awards go to groups that have already accomplished dramatic results and provide continued funding so they can keep changing the world by providing clean water, protecting endangered species, and doing other wonderful things.

If you want to find out more about the Global Impact Awards, visit the home page, or learn about the other grant programs of Google Giving.

Meanwhile, near the moon, scientists have published the first mapping images from the tandem spacecraft Ebb and Flow, which reached lunar orbit about a year ago. This program, called GRAIL (Gravity Recovery and Interior Laboratory), uses the two spacecraft to study lunar features in great detail, providing unprecedented information about Earth’s moon. So far, the data shows craters, peaks, and volcanic formations, but no huge surprises like giant alien transformer robots.

Speaking of transformer robots, here’s one you can enjoy on video. Sure, it’s neither giant nor alien, but it’s still very cool, don’t you think? Have a great weekend!

On Fridays we depart from our usual developer topics and post a Fridaygram, which features interesting nerdy stuff for fun and knowledge. This week we acknowledge Walt Disney’s eleventy-first birthday, and the happy news that his creation Oswald the Lucky Rabbit will finally get a voice after 85 years of silence.

Wednesday, 5 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

Google HackFair in South Korea

Author Photo
By Soonson Kwon, Developer Relations Program Manager

For developers and engineers, the best way to learn something is to get your hands dirty and try making something. That is why Google hosts many hackathons around the world. Last November 17 and 18, we had a bigger experiment at Gangnam (yes, this is the very Gangnam in Gangnam Style!) in Seoul, South Korea which expanded a 1-2 day hackathon into a much longer one which we called Google HackFair.

The idea was to give developers enough time (2 months) to develop something bigger and provide a nice chance to showcase their projects. 153 developers submitted 92 projects, and 40 projects were chosen from among them and displayed. Developers used many different technologies, including Android, Chrome, App Engine, and HTML5, and they completed creative and interesting projects: a remote controlled car guided by Android, a serial terminal for Chrome, a braille printer using Go, and many more!

Besides the exhibition, we also prepared a mini-conference and GDG (Google Developers Group) booth where Googlers and community developers gave 27 sessions in total.

More than 1000 people attended and enjoyed the Google HackFair. Although the event is finished, developers continue updating and polishing their projects. It was a great time indeed.

If you are interested in details for the projects including full demos or source code, please check here.

Soonson Kwon is Developer Relations Program Manager and Country Lead for South Korea. His mission is to help Korean developers make better use of Google’s developer products. He is also passionate about Open Source.

Posted by Scott Knaster, Editor

Monday, 3 December 2012
Facebook StumbleUpon Twitter Google+ Pin It

GDL Presents: Keeping the Internet Free & Open

Author Photo
By Derek Slater, Policy Manager

More than 2 billion people around the world use the web to discover, work, share, and communicate. This week, Google Developers Live Presents will host a series on Internet regulation and the future of our web. Airing Tuesday through Thursday at 3:30pm PST (23:30 UTC), technical, entrepreneurial, and policy experts weigh in on the economic and social impact of the Internet, as well as its future if we don’t take action.

Visit the Google+ events to RSVP, add the episodes to your Google calendar, tune in live on GDL, and ask questions of our on-air guests. And, most importantly, raise your voice for a free and open web.

Tuesday: The State of Our Web | 3:30 pm PST | 23:30 UTC | Featuring M-Lab and the Transparency Report | Watch live | Add to calendar

How can you tell if an application is being throttled? What are the trends in governments seeking access to users' data? Minds behind M-Lab and the Transparency report – two projects trying to empower Internet users with data about the state of the Internet – join us in-studio.

Wednesday: Entrepreneurs on the #freeandopen web | 3:30 pm PST | 23:30 UTC | Featuring Google for Entrepreneurs and Engine Advocacy | Watch live | Add to calendar

Google for Entrepreneurs is helping startups around the world and Engine Advocacy is the startup voice in government. Learn more about what they’ve picked up along the way about the culture of successful communities of entrepreneurs, and policies on the table that may impact them.

Thursday: Internet Freedom and the ITU | 3:30 pm PST | 23:30 UTC | Featuring Access Now, Association for Progressive Communications, Centro de Technologia e Sociedade (Brazil), Fundacion Karisma (Colombia), Derechos Digitales (Chile) | Watch live | Add to calendar

This week, the world's governments are gathering in Dubai to discuss the future of the Internet. Some governments want to use this meeting to increase censorship and regulate the Internet. Hear from five leading advocacy groups from around the world about what’s at stake.

Connect with us at Tune in to live programming, check out the latest in Google tools and technologies, and learn how to make great apps.

Derek Slater defends the open Internet on Google's public policy team. He supports the company's global advocacy efforts on innovation policy, and recently helped launch

Posted by Scott Knaster, Editor