<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
 
 <title type="text">Google Code: News</title>
 
 <link type="html" href="http://code.google.com/" />
 <updated>2012-02-09T19:03:03</updated>
 <id>tag:code.google.com,news</id>

 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GoogleCodeNews" /><feedburner:info uri="googlecodenews" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
 <title>Debugging KML Balloon Content in Google Earth</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/5vDs_o_x-x8/debugging-kml-balloon-content-in-google.html" />
 <id>tag:blogger.com,1999:blog-3124040365160254795.post-7795253022327468178</id>
 <published>2012-02-09T09:00:00.000-08:00</published>
 <updated>2012-02-09T09:00:08.253-08:00</updated>
 <summary type="html">KML Balloons in Google Earth - starting with version 5.0 - support HTML, CSS, and almost full JavaScript. This can be a great tool for developers looking to...</summary>
 <content type="html">&lt;p&gt;KML Balloons in Google Earth - starting with version 5.0 - support HTML, CSS, and almost full &lt;a href="http://code.google.com/apis/kml/documentation/kmlreference.html#description" target="_blank"&gt;JavaScript&lt;/a&gt;. This can be a great tool for developers looking to add rich content and interactivity into their KML files.&lt;/p&gt;&lt;p&gt;However, it&#x2019;s not always obvious how to debug that KML content. Google Earth doesn&#x2019;t have a full set of tools like &lt;a href="http://code.google.com/chrome/devtools/docs/overview.html" target="_blank"&gt;Chrome Developer Tools&lt;/a&gt;. However, it does allow you to view console output, so console.log() output, as well as errors that would normally appear in the Chrome console or &lt;a href="http://getfirebug.com/" target="_blank"&gt;Firebug&lt;/a&gt; will appear in the console instead. Note, Google Earth does not allow the presentation of system dialogs (namely the functions alert, confirm, and prompt).&lt;/p&gt;
&lt;p&gt;Here&#x2019;s some quick tips on how to get it to work:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Linux&lt;/b&gt;: Launch Google Earth from the terminal window. Console output will then appear in the terminal window.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Mac OS X&lt;/b&gt;: You can launch it directly from the command line, &#x201c;/Applications/Google Earth.app/Contents/MacOS/Google Earth&#x201d; and read the console output in the command line.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Windows&lt;/b&gt;: Install &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896647" target="_blank"&gt;DebugView&lt;/a&gt;, which is from Microsoft, and look for system messages in the output.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Here's a screenshot from Mac OS X:&lt;/p&gt;&lt;b id="internal-source-marker_0.16055788728408515"&gt;&lt;img height="161px;" src="https://lh6.googleusercontent.com/hZAlNwv9lw2UW8onsbpBc7oFwRYUp7pLJ3goSfjtuBojniePdC3GBEPrlc7N1OD4HVoJTK_oPnz4Si1_km4ojO34Omwu-1SNqNYK4tmd9gInaWss-xs" width="676px;" /&gt;&lt;/b&gt;


&lt;p&gt;Balloon content is rendered by WebKit, and Google Earth currently supports the equivalent of Safari 4.0.4 (which is WebKit-based). If you want to know if a particular JavaScript or CSS feature is supported, one option is to search for it on &lt;a href="http://caniuse.com/" target="_blank"&gt;http://caniuse.com/&lt;/a&gt;.&lt;/p&gt;

&lt;span class="post-author"&gt;Posted by &lt;a href="http://profiles.google.com/" target="_blank"&gt;Mano Marks&lt;/a&gt;, Maps API Developer Relations Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/3124040365160254795-7795253022327468178?l=googlegeodevelopers.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/5vDs_o_x-x8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GoogleGeoDevelopersBlog/~3/hqu7P-vzoUs/debugging-kml-balloon-content-in-google.html</feedburner:origLink></entry>

 <entry>
 <title>Share With Intents</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/c8C9FbcL-Dc/share-with-intents.html" />
 <id>tag:blogger.com,1999:blog-6755709643044947179.post-552000352514140667</id>
 <published>2012-02-09T07:20:00.000-08:00</published>
 <updated>2012-02-09T08:06:11.668-08:00</updated>
 <summary type="html">[This post is by Alexander Lucas, an Android Developer Advocate bent on saving the world 5 minutes. &#x2014;Tim Bray][Please join the discussion on Google+.]Intents are awesome. They are...</summary>
 <content type="html">&lt;a href="http://2.bp.blogspot.com/_GTM_W5mVPTU/TQf98KOwFtI/AAAAAAAAAPU/GAn3Efe53UM/s1600/alexlucas.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5550684275737630418" src="http://2.bp.blogspot.com/_GTM_W5mVPTU/TQf98KOwFtI/AAAAAAAAAPU/GAn3Efe53UM/s400/alexlucas.png" style="border: 5px solid #ddd; float: right; margin: 0 0 10px 10px; cursor: pointer; cursor: hand; height: 120px;" /&gt;&lt;/a&gt;&lt;p&gt;&lt;i&gt;[This post is by Alexander Lucas, an Android Developer Advocate bent on saving the world 5 minutes. &#x2014;Tim Bray]&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;[Please join &lt;a href="https://plus.google.com/108967384991768947849/posts/ExqhqWWqSP9"&gt;the discussion on Google+&lt;/a&gt;.]&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Intents are awesome. They are my favorite feature of Android development.  They make all sorts of stuff easier.  Want to scan a barcode?  In the olden platforms, if you were lucky, this involved time and effort finding and comparing barcode-scanning libraries that handled as much as possible of camera interaction, image processing, an internal database of barcode formats, and UI cues to the user of what was going on.  If you weren&#x2019;t lucky, it was a few months of research &amp;amp; haphazard coding to figure out how to do that yourself.&lt;/p&gt;&lt;p&gt;On Android, it&#x2019;s a declaration to the system that you would like to scan a barcode.&lt;/p&gt;&lt;pre&gt;&lt;code&gt;public void scanSomething() {
    // I need things done!  Do I have any volunteers?
    Intent intent = new Intent("com.google.zxing.client.android.SCAN");

    // This flag clears the called app from the activity stack, so users arrive in the expected
    // place next time this application is restarted.
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

    intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
    startActivityForResult(intent, 0);
}
...
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            //  The Intents Fairy has delivered us some data!
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;See that?  That&#x2019;s &lt;em&gt;nothing&lt;/em&gt;.  That&#x2019;s 5 minutes of coding, 3 of which were just to look up the name of the result you wanted to pull.  And that was made possible because the Barcode Scanner application is designed to be able to scan barcodes for whatever other applications may need it.&lt;/p&gt;&lt;p&gt;More important, our app is completely decoupled from the BarcodeScanner app.  There&#x2019;s no integration- in fact, neither application is checking to verify that the other exists.  If the user preferred, they could remove &#x201c;Barcode Scanner&#x201d; and replace it with a competing app.  As long as that app supported the same intent, functionality would remain the same.  This decoupling is important.  It&#x2019;s the easy way.  It&#x2019;s the &lt;a href="http://en.wikipedia.org/wiki/Larry_Wall#Virtues_of_a_programmer"&gt;lazy&lt;/a&gt; way.  It&#x2019;s the Android way.&lt;/p&gt;&lt;h3&gt;Sharing Data Using Intents&lt;/h3&gt;&lt;p&gt;One of the most inherently useful Android intents is the Share intent.  You can let the user share data to any service they want, &lt;em&gt;without writing the sharing code yourself&lt;/em&gt;, simply by creating a share intent.&lt;/p&gt;&lt;pre&gt;&lt;code&gt;Intent intent=new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

// Add data to the intent, the receiving app will decide what to do with it.
intent.putExtra(Intent.EXTRA_SUBJECT, &#x201c;Some Subject Line&#x201d;);
intent.putExtra(Intent.EXTRA_TEXT, &#x201c;Body of the message, woot!&#x201d;);&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;... and starting it with a &lt;a href="http://developer.android.com/reference/android/content/Intent.html#createChooser(android.content.Intent,%20java.lang.CharSequence)"&gt;chooser&lt;/a&gt;:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;startActivity(Intent.createChooser(intent, &#x201c;How do you want to share?&#x201d;));&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;With these 5 lines of code, you get to bypass authenticating, credential storage/management, web API interaction via http posts, all sorts of things. Where by &#x201c;bypass&#x201d;, I mean &#x201c;have something else take care of.&#x201d;  Like the barcode scanning intent, all you really had to do was declare that you have something you&#x2019;d like to share, and let the user choose from a list of takers.  You&#x2019;re not limited to sending text, either.  Here&#x2019;s how you&#x2019;d create an intent to share an image:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;private Intent createShareIntent() {
    ...
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    shareIntent.setType("image/*");

    // For a file in shared storage.  For data in private storage, use a ContentProvider.
    Uri uri = Uri.fromFile(getFileStreamPath(pathToImage));
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
    return shareIntent;
}  &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that just by using &lt;a href="http://developer.android.com/reference/android/content/Intent.html#setType(java.lang.String)"&gt;setType()&lt;/a&gt; to set a MIME type, you&#x2019;ve filtered down the list of apps to those that will know what to do with an image file.&lt;/p&gt;&lt;h3&gt;Intents over Integration&lt;/h3&gt;&lt;p&gt;Think about this for a second.  By making the simple assumption that any user of any service (Task Manager, Social Network, Photo sharing site) already has some app on their phone that can share to that service, you can leverage the code that they&#x2019;ve already written.  This has several awesome implications:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;i&gt;Less UI&lt;/i&gt; &#x2014; You don&#x2019;t have to clog up your UI with customized, clickable badges of services you support.  Just add a &#x201c;share&#x201d; button.  It&#x2019;s okay, we&#x2019;ve made sure all your users know what it does [insert smiley here].&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;i&gt;Leveraged UI&lt;/i&gt; &#x2014; You can bet that every high-quality web service out there has spent serious time on the UI of their Android app&#x2019;s &#x201c;share&#x201d; activity.  Don&#x2019;t reinvent the wheel!  Just grab a couple and go for a ride.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Filtered for the user &#x2014; If I don&#x2019;t have a Foo-posting app on my phone, there&#x2019;s a good chance I don&#x2019;t care about posting to Foo.  Now I won&#x2019;t see Foo icons everywhere that are useless to me.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;i&gt;Client App Ecosystem&lt;/i&gt; &#x2014; Much like an email client, anyone can write a client for any service.  Users will use the ones they want, uninstall the ones they don&#x2019;t.  Your app supports them all.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;i&gt;Forward Compatible with new services&lt;/i&gt; &#x2014; If some swanky new service springs up out of nowhere with an Android Application, as long as that application knows how to receive the share intent, you already support it.  You don&#x2019;t spend time in meetings discussing whether or not to wedge support for the new service into your impending Next Release(tm), you don&#x2019;t burn engineering resources on implementing support as fast as possible, you don&#x2019;t even upload a new version of anything to Android Market.  Above all, you don&#x2019;t do any of that again next week, when another new service launches and the whole process threatens to repeat itself.  You just hang back and let your users download an application that makes yours even more useful.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Avoid One-Off Integrations&lt;/h3&gt;&lt;p&gt;For each pro of the Intent approach, integrating support to post to these services one-at-a-time has a corresponding con.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;i&gt;Bad for UI&lt;/i&gt; &#x2014; If your photo-sharing app has a Foo icon, what you might not immediately understand is that while you&#x2019;re trying to tell the user &#x201c;We post to Foo!&#x201d; what you&#x2019;re really saying is &#x201c;We don&#x2019;t post to Bar, Baz, or let you send the photo over email, sms, or bluetooth.  If we did, there would be icons.  In fact, we probably axed those features because of the space the icons would take on our home screen.  Oh, and we&#x2019;ll probably use some weird custom UI and make you authenticate through a browser, instead of the Foo client you already have installed.&#x201d;  I&#x2019;m not going to name names, but a lot of you are guilty of this.  It&#x2019;s time to stop.  (I mean it.  Stop.)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Potentially wasted effort &#x2014; Let&#x2019;s say you chose one service, and integrated it into your UI &lt;em&gt;perfectly&lt;/em&gt;.  Through weeks of back-and-forth with Foo&#x2019;s staff, you&#x2019;ve got the API and authentication mechanisms down pat, the flow is seamless, everything&#x2019;s great.  Only problem is that you just wasted all that effort, because none of your user-base particularly cares for Foo.  Ouch!&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;i&gt;Not forward compatible for existing services&lt;/i&gt; &#x2014; Any breaking changes in the API are your responsibility to fix, quickly, and that fix won&#x2019;t be active until your users download a newer version of your app.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;i&gt;Won&#x2019;t detect new services&lt;/i&gt; &#x2014; This one really hurts.  If a brand new service Baz comes out, and you&#x2019;ve actually got the engineering cycles to burn, you need to get the SDK, work out the bugs, develop a sharing UI, have an artist draw up your own &#x201c;edgy&#x201d; (ugh) but legally distinct version of the app&#x2019;s logo so you can plaster it on your home screen, work out all the bugs, and launch.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You will be judged harshly by your users.  And deservedly so.&lt;/p&gt;&lt;h3&gt;Ice Cream Sandwich makes it even easier&lt;/h3&gt;&lt;p&gt;With the release of ICS, a useful tool for sharing called &lt;a href="http://developer.android.com/reference/android/widget/ShareActionProvider.html"&gt;ShareActionProvider&lt;/a&gt; was added to the framework, making the sharing of data across Android applications even easier.  ShareActionProviders let you populate lists of custom views representing ACTION_SEND targets, facilitating (for instance) adding a &#x201c;share&#x201d; menu to the ActionBar, and connecting it to whatever data the user might want to send.&lt;/p&gt;&lt;p&gt;Doing so is pretty easy.  Configure the menu items in your Activity&#x2019;s onCreateOptionsMenu method, like so:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Get the menu item.
    MenuItem menuItem = menu.findItem(R.id.menu_share);
    // Get the provider and hold onto it to set/change the share intent.
    mShareActionProvider = (ShareActionProvider) menuItem.getActionProvider();

    // Attach an intent to this ShareActionProvider.  You can update this at any time,
    // like when the user selects a new piece of data they might like to share.
    mShareActionProvider.setShareIntent(yourCreateShareIntentMethod());

    // This line chooses a custom shared history xml file. Omit the line if using
    // the default share history file is desired.
    mShareActionProvider.setShareHistoryFileName("custom_share_history.xml");
      . . .
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that you can specify a history file, which will adapt the ordering of share targets based on past user choices.  One shared history file can be used throughout an application, or different history files can be used within the same application, if you want to use a separate history based on what kind of data the user wants to share.  In the above example, a custom history file is used.  If you wish to use the default history for the application, you can omit that line entirely.  &lt;/p&gt;&lt;p&gt;This will help optimize for an important feature of the ShareActionProvider:  The user&#x2019;s most common ways to share float to the top of the drop-down, with the least used ones disappearing below the fold of the &#x201c;See More&#x201d; button.  The most commonly selected app will even become a shortcut right next to the dropdown, for easy one-click access!&lt;/p&gt;&lt;a href="http://2.bp.blogspot.com/-mVQddiSMz0I/TzL2y2Ny5uI/AAAAAAAABKo/ikNPtWiPu4w/s1600/Screenshot_2012-02-08-14-01-21.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5706895031239108322" src="http://2.bp.blogspot.com/-mVQddiSMz0I/TzL2y2Ny5uI/AAAAAAAABKo/ikNPtWiPu4w/s320/Screenshot_2012-02-08-14-01-21.png" style="float: right; margin: 0 0 10px 10px; cursor: pointer; cursor: hand; width: 180px; height: 320px;" /&gt;&lt;/a&gt;&lt;p&gt;You&#x2019;ll also need to define a custom menu item in XML.  Here&#x2019;s an example from the &lt;a href="http://developer.android.com/guide/topics/ui/actionbar.html#ShareActionProvider"&gt;ActionBar Dev Guide&lt;/a&gt;.&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&gt;
&amp;lt;menu xmlns:android="http://schemas.android.com/apk/res/android"&gt;
    &amp;lt;item android:id="@+id/menu_share"
          android:title="@string/share"
          android:showAsAction="ifRoom"
          android:actionProviderClass="android.widget.ShareActionProvider" /&gt;
&amp;lt;/menu&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And with that, you can have an easy sharing dropdown that will look like the screenshot here. Note that you get the nice standard three-dots-two-lines &#x201c;Share&#x201d; glyph for free.&lt;/p&gt;&lt;h3&gt;Remember: Smart and Easy&lt;/h3&gt;&lt;p&gt;The share intent is the preferred method of sharing throughout the Android ecosystem. It&#x2019;s how you share images from Gallery, links from the browser, and apps from Android Market. Intents are the easiest path to writing flexible applications that can participate in a rapidly expanding ecosystem, but they&#x2019;re also the smart path to writing applications that will stay relevant to your users, letting them share their data to any service they want, no matter how often their preferences change over time.   So take a step back and stop worrying about if your user wants to tweet, digg, post, email, im, mms, bluetooth, NFC, foo, bar or baz something.  Just remember that they want to share it.  Android can take it from there.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6755709643044947179-552000352514140667?l=android-developers.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=yJ01r7896V0:TsMczEeU7Fw:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/hsDu?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/hsDu?a=yJ01r7896V0:TsMczEeU7Fw:-BTjWOF_DHI"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/hsDu?i=yJ01r7896V0:TsMczEeU7Fw:-BTjWOF_DHI" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/blogspot/hsDu/~4/yJ01r7896V0" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/c8C9FbcL-Dc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/blogspot/hsDu/~3/yJ01r7896V0/share-with-intents.html</feedburner:origLink></entry>

 <entry>
 <title>Google Code-in 2011 Stats to Ponder</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/skfMogz4ovM/google-code-in-2011-stats-to-ponder.html" />
 <id>tag:blogger.com,1999:blog-8698702854482141883.post-6876744962089468109</id>
 <published>2012-02-08T12:00:00.000-08:00</published>
 <updated>2012-02-08T12:00:00.750-08:00</updated>
 <summary type="html">For Google Code-in 2011 we had 542 pre-university students (ages 13-17) from 56 countries complete an astounding 3,054 tasks for 18 open source organizations during the eight week...</summary>
 <content type="html">&lt;br /&gt;
For &lt;a href="http://www.google-melange.com/gci/homepage/google/gci2011" target="blank"&gt;Google Code-in 2011&lt;/a&gt; we had 542 pre-university students (ages 13-17) from 56 countries complete an astounding 3,054 tasks for &lt;a href="http://www.google-melange.com/gci/accepted_orgs/google/gci2011" target="blank"&gt;18 open source organizations&lt;/a&gt; during the eight week contest period. &amp;nbsp;59.8% of the students completed 3 or more tasks in the contest.&lt;br /&gt;
&lt;br /&gt;
The graph below illustrates the 10 countries with the highest number of students participating in Google Code-in 2011.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="" style="text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-CrsT5Ym0sc8/TzLESt_D60I/AAAAAAAAAh4/d83EMo3R4lU/s1600/graph.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="246" src="http://4.bp.blogspot.com/-CrsT5Ym0sc8/TzLESt_D60I/AAAAAAAAAh4/d83EMo3R4lU/s320/graph.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The five schools with the largest number of students participating in Google Code-in 2011 are listed below:&lt;br /&gt;
- Technical School Electronic Systems associated with Technical University - Sofia in Bulgaria had an impressive 49 students participating.&lt;br /&gt;
- XIV Liceum Ogólnokszta&#x142;c&#x105;ce im. Stanis&#x142;awa Staszica w Warszawie in Poland&lt;br /&gt;
- Roman-Vod&#x103; National College in Romania&lt;br /&gt;
- Ankara Polis Koleji in Turkey&lt;br /&gt;
- "Tiberiu Popoviciu" I.T. High School from Cluj-Napoca in Romania&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="" style="text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-cVB9djwu31c/TzLE_tz87mI/AAAAAAAAAiA/3FRFxcAngFc/s1600/GCI+2011+Age+breakdown.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="246" src="http://1.bp.blogspot.com/-cVB9djwu31c/TzLE_tz87mI/AAAAAAAAAiA/3FRFxcAngFc/s320/GCI+2011+Age+breakdown.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We had 307 dedicated mentors and organization administrators from 51 countries helping the students throughout the contest. Mentors hailed from all corners of the globe from places such as New Zealand, Uzbekistan, Peru, Bangladesh, Germany, South Africa and all parts in between.&lt;br /&gt;
&lt;br /&gt;
Thank you to all of the students, mentors and organization administrators who helped make Google Code-in 2011 a success.&lt;br /&gt;
&lt;br /&gt;
Stay tuned to this blog as we will announce the 10 grand prize winners for Google Code-in 2011 on February 14.&lt;br /&gt;
&lt;br /&gt;
If you are a university student at least 18 years of age and would like to work on open source projects this summer (or winter for our southern hemisphere friends) then please look into our &lt;a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2012" target="blank"&gt;Google Summer of Code 2012&lt;/a&gt; program that we recently announced.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;By Stephanie Taylor, Open Source Programs&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/8698702854482141883-6876744962089468109?l=google-opensource.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=hEfUfaAAVuo:EWoSZBe0sz8:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=hEfUfaAAVuo:EWoSZBe0sz8:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=hEfUfaAAVuo:EWoSZBe0sz8:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/hEfUfaAAVuo" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/skfMogz4ovM" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/hEfUfaAAVuo/google-code-in-2011-stats-to-ponder.html</feedburner:origLink></entry>

 <entry>
 <title>Charts, Gmail, Maps and Properties Services Graduating from Experimental</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/a3CiKIEb0MI/charts-gmail-maps-and-properties.html" />
 <id>tag:blogger.com,1999:blog-1377183911445147227.post-7475856700796362079</id>
 <published>2012-02-08T11:59:00.000-08:00</published>
 <updated>2012-02-08T11:59:16.072-08:00</updated>
 <summary type="html">The Google Apps Script team strives to achieve a very high level of responsiveness to our community. We iterate fast to deliver new features and functionality. Releasing new...</summary>
 <content type="html">The &lt;a href="http://code.google.com/googleapps/appsscript/"&gt;Google Apps Script&lt;/a&gt; team strives to achieve a very high level of responsiveness to our community. We iterate fast to deliver new features and functionality. Releasing new Apps Script services under the &#x201c;Experimental&#x201d; flag allows us to gather valuable feedback from you. Real world exposure to these new experimental Apps Script services makes it easy for us to prioritize features, improve API design and documentation, and identify bugs and use cases. On top of that, experimental releases give us a way to support our more advanced users, who are perfectly happy to live on the cutting edge and get their hands on cool new Apps Script services as early as possible.&lt;br /&gt;
&lt;br /&gt;
We put thorough consideration into the use of the Experimental flag. Not every new Apps Script service that we launch is experimental. In October, we launched the &lt;a href="http://code.google.com/googleapps/appsscript/service_lock.html"&gt;Lock&lt;/a&gt; and &lt;a href="http://code.google.com/googleapps/appsscript/service_cache.html"&gt;Cache&lt;/a&gt; service as non-experimental. We believed that these two services were fundamentally mature, and thus able to be launched as non-experimental.&lt;br /&gt;
&lt;br /&gt;
Today, we are graduating four services from experimental status:&lt;ol&gt;&lt;li&gt;&lt;a href="http://code.google.com/googleapps/appsscript/service_charts.html"&gt;Charts Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/googleapps/appsscript/service_gmail.html"&gt;Gmail Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/googleapps/appsscript/service_maps.html"&gt;Maps Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/googleapps/appsscript/service_properties.html"&gt;Properties Service&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;You can expect us to continue on this path of careful deliberation in deciding when to use the experimental flag. We will continue to evaluate the design, documentation, and overall strengths of each experimental API and continue to work hard to graduate them to fully supported APIs. We welcome your feedback in helping us make Apps Script better. You can post your feature requests on our &lt;a href="http://code.google.com/p/google-apps-script-issues/issues/list"&gt;tracker&lt;/a&gt; and ask any question in our &lt;a href="https://groups.google.com/a/googleproductforums.com/forum/#!forum/apps-script"&gt;forum&lt;/a&gt;. If you are curious on how to use the above mentioned APIs then check out the tutorials for the &lt;a href="http://code.google.com/googleapps/appsscript/articles/gmail-stats.html"&gt;Charts and Gmail Services&lt;/a&gt;, the &lt;a href="http://code.google.com/googleapps/appsscript/articles/maps_tutorial.html"&gt;Maps Service&lt;/a&gt; and excellent example of using &lt;a href="http://code.google.com/googleapps/appsscript/articles/twitter_tutorial.html"&gt;Properties Service&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The Apps Script team is standing by to help you!&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr style="background-color: #f2f2f2;"&gt;&lt;td&gt;&lt;img class="profile" src="http://3.bp.blogspot.com/-AfmuFkbdBJQ/TjHzJVAWTXI/AAAAAAAAAMo/xVhok61rw7I/s400/Google%2BChromeScreenSnapz157.png" /&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;span class="largefont"&gt;Saurabh Gupta&lt;/span&gt;   &lt;a class="alt" href="https://profiles.google.com/sg1705" rel="me" target="_blank"&gt;profile&lt;/a&gt; | &lt;a class="alt" href="http://twitter.com/#gluemesh" rel="me" target="_blank"&gt;twitter&lt;/a&gt; | &lt;a class="alt" href="http://www.gluemesh.com/" rel="me" target="_blank"&gt;blog&lt;/a&gt;&lt;br /&gt;&lt;div class="bio"&gt;&lt;br /&gt;Saurabh is a Developer Programs Engineer at Google. He works closely with Google Apps Script developers to help them extend Google Apps. Over the last 10 years, he has worked in the financial services industry in different roles. His current mission is to bring automation and collaboration to Google Apps users.&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/1377183911445147227-7475856700796362079?l=googleappsdeveloper.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleAppsDeveloperBlog/~4/KPlpR9TOv4M" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/a3CiKIEb0MI" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GoogleAppsDeveloperBlog/~3/KPlpR9TOv4M/charts-gmail-maps-and-properties.html</feedburner:origLink></entry>

 <entry>
 <title>The BugSense hybrid app: experiences using Clojure on Google App Engine</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/B9GWpzgeLqE/bugsense-hybrid-app-experiences-using.html" />
 <id>tag:blogger.com,1999:blog-8501956666581132164.post-4555042538438981900</id>
 <published>2012-02-07T14:21:00.000-08:00</published>
 <updated>2012-02-07T14:21:19.569-08:00</updated>
 <summary type="html">Today&#x2019;s post comes to us from Jon Vlachogiannis and Panos Papadopoulos, founders of BugSense, a mobile error analytics service. We hope you find their insights on using Clojure...</summary>
 <content type="html">&lt;span style="font-family: inherit; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Today&#x2019;s post comes to us from &lt;/span&gt;&lt;span style="font-family: inherit; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Vlachogiannis&lt;/span&gt;&lt;span style="font-family: inherit; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: inherit; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Panos Papadopoulos&lt;/span&gt;&lt;span style="font-family: inherit; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, founders of &lt;/span&gt;&lt;a href="http://www.bugsense.com/" style="font-family: inherit; font-weight: bold;"&gt;&lt;span style="color: #000099; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;BugSense&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, a mobile error analytics service. We hope you find their insights on using Clojure on Google App Engine informative. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span id="internal-source-marker_0.18339269538410008"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;BugSense is a cross-platform error analytics infrastructures for mobile devices. BugSense uses Google App Engine to power its backend, processing more than 1.6 million daily errors, generated by more than 45 million devices around the world. Chances are one of the applications installed on your smart phone (like &lt;/span&gt;&lt;a href="http://www.soundcloud.com/" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;SoundCloud&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;a href="http://www.trulia.com/" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Trulia&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;) is already using BugSense.&lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: line-through; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The Problem&lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Lots of our clients want to optimize and protect their mobile apps (through code obfuscation) using &lt;/span&gt;&lt;a href="http://proguard.sourceforge.net/" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ProGuard&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. ProGuard&lt;/span&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; creates more compact code, resulting in faster transfer across networks, faster loading, and smaller memory footprints. On top of that it makes programs and libraries harder to reverse-engineer.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;However, because the Android Market doesn't automatically de-obfuscate of stack traces from ProGuard-ed apps, developers who want to analyse errors from their apps must get the stack trace from the Market, format it and use ProGuard locally. The whole process for just a single error could take more than 3 minutes, so we decided to add support for ProGuard to BugSense to make debugging easier and faster.&lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: line-through; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The Solution: Clojure and Python&lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The main data-serving portion of our app is written in Python, our language of choice, but ProGuard&lt;/span&gt;&lt;span style="color: #666666; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;is an open source project in Java. For easier development, we ported parts of ProGuard to &lt;/span&gt;&lt;span style="font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, a dynamic language belonging to the Lisp family that runs on the JVM. This allows us to &#x201c;&lt;/span&gt;&lt;a href="http://paulgraham.com/avg.html" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;beat the averages&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&#x201d; by exploiting all the great features that a LISP language offers (such as &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Macro_(computer_science)" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;macros&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;and &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Exploratory_programming" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;exploratory programming&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;). Using Clojure and having access to a vast number of Java libraries assisted us in tackling the difficult problem of de-obfuscation, with great results. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Once we were done, we deployed using &lt;/span&gt;&lt;a href="https://github.com/gcv/appengine-magic" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;AppEngineMagic&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; and now it's trivial (one click) for our users to de-obfuscate their stacktraces. Now we have the best of two worlds: Python for serving data and Java/Clojure for doing calculations, all in the same Google App Engine application. And it scales automatically and runs even faster than running ProGuard on your laptop!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b&gt;&lt;img height="578px;" src="https://lh3.googleusercontent.com/sg_wxLOdWd0PBXqDB8HruvhoG3wppj_NZSorFlkgcyYN7On-HXynfbZAPlUBhBphgh3XKMKSBPlpDclFg_hfyowI932gj30Psu2nSfwKkCsly5Mo4m0" width="450px;" /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Practically, that means that we can have a heterogeneous app on Google App Engine so that we can keep programming in our favourite language, Python, but still harness the tremendous wealth of Java libraries using Clojure. Running a hybrid app on App Engine is trivial since they share the same resources task queues, Datastore, and memcache. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;However, because our app is implemented in multiple languages, we need to start two different local instances (one for Python and one for Clojure). We use a combination of mocks for both of the instances in order to emulate the hybrid app and their interaction in a local environment for development and testing. &lt;/span&gt;&lt;br /&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Google App Engine, a success factor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;We started as a two-developer startup and our product rapidly became popular across the world. Building on Google App Engine helped us focus on product development and forget about infrastructure and administration, thus enabling us to focus more on our customers' needs. (And sleep tight at night.) Furthermore it helped us to keep costs low and iterate quickly.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;To learn more about BugSense, check out our &lt;/span&gt;&lt;a href="http://www.bugsense.com/" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;website&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. If you have comments or questions about this post or just want to reach out directly, you can find us at &lt;/span&gt;&lt;a href="https://plus.google.com/117468621612200276461/posts" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;+jonromero&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;a href="https://plus.google.com/103226772461872983128/posts" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;+bugsense&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/8501956666581132164-4555042538438981900?l=googleappengine.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/nHwJebxPmFg" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/B9GWpzgeLqE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/nHwJebxPmFg/bugsense-hybrid-app-experiences-using.html</feedburner:origLink></entry>

 <entry>
 <title>isocket and Shiny Ads deliver new innovations using the DFP API</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/V_530eAayhY/editors-note-wed-like-to-share-with-you.html" />
 <id>tag:blogger.com,1999:blog-7815614485808579332.post-5173830637488605564</id>
 <published>2012-02-07T10:00:00.000-08:00</published>
 <updated>2012-02-07T10:24:06.757-08:00</updated>
 <summary type="html">Editor&#x2019;s note: We&#x2019;d like to share with you this post from John Park about the growing DFP API ecosystem and a few success stories from our partner directory...</summary>
 <content type="html">&lt;div dir="ltr" style="text-align: left;"&gt;
&lt;i&gt;Editor&#x2019;s note: We&#x2019;d like to share with you this &lt;a href="http://doubleclickpublishers.blogspot.com/2012/02/isocket-and-shiny-ads-deliver-new.html"&gt;post&lt;/a&gt; from John Park about the growing DFP API  ecosystem and a few success stories from our&amp;nbsp;&lt;a href="http://support.google.com/dfp_premium/bin/topic.py?hl=en&amp;amp;topic=2456651"&gt;partner directory&lt;/a&gt;. -- Adam Rogal, Ads Developer Relations Team&lt;/i&gt;&lt;br /&gt;
&lt;div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: small; line-height: 20px;"&gt;
&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: small; line-height: 20px;"&gt;
&lt;span id="internal-source-marker_0.36028193356469274"&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;With thousands of publishers using the DFP and DFP Small Business ad serving platforms, we know first-hand that no two publishers are identical. Publishers may use in-house billing systems, have unique approval workflows, or use third-party tools to handle their ad operations.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;To give publishers the flexibility to easily integrate their unique processes and systems with their ad server, DFP offers publishers an open &lt;/span&gt;&lt;a href="http://code.google.com/apis/dfp/" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;API&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; to easily &lt;/span&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;create tools that complement their ad operations. &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br class="kix-line-break" /&gt;We&#x2019;ve seen hundreds of developers build new ad serving innovations using the API, including applications to manage inventory, create orders, pull reports, and more. The API has created a new ecosystem of partner innovations, giving publishers access to new ad serving tools and applications. Two such applications come from &lt;/span&gt;&lt;a href="https://www.isocket.com/" style="font-weight: bold;"&gt;&lt;span style="background-color: white; color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;isocket&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;a href="http://shinyads.com/" style="font-weight: bold;"&gt;&lt;span style="background-color: white; color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Shiny Ads&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; who have used the DFP API to build applications that help publishers manage and sell their ad space.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;isocket uses the API to create tools that streamlines sales&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Seeing the need to streamline the manual steps involved with buying and selling inventory, isocket engineered a direct and self-service ad sales tool to simplify sales workflows. By leveraging the DFP API, isocket was able to build an application to automate sales processes and save money. &#x201c;We were interested in using the API because it allowed us to eliminate the hassle of manually coordinating campaigns, while still keeping the important parts like publisher control and approval. Integrating with the DFP API has allowed us to make things a lot simpler for publishers,&#x201d; said Ben Trenda, VP of Sales at isocket.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.google.com/doubleclick/pdfs/DFP-API-iSocket.pdf" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Read more&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; about how isocket integrated with the DFP API. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Shiny Ads builds application to help publishers save time&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;To help facilitate publishers&#x2019; direct ad campaign management, Shiny Ads began using&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;the DFP API to integrate its self-serve advertising platform with DFP in order to help publishers streamline their sales processes. This integration has helped save publishers time since they no longer need to manually book sales orders. &#x201c;Our solution needs to support DFP - our customers demand it&#x201d; &amp;nbsp;said CEO and founder Roy Pereira. &#x201c;The API made integrating with DFP easy for us, and most importantly, easy for our clients. Without the DFP API, Shiny Ads would not have the fully functional solution we have today.&#x201d; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.google.com/doubleclick/pdfs/DFP-API-ShinyAds.pdf" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Read more&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; about how Shiny Ads integrated with the DFP API. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b id="internal-source-marker_0.36028193356469274" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: small; line-height: 20px;"&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Over the coming months, we&#x2019;ll share more stories on how our partners are using the DFP API to deliver exciting ad serving innovations. For a complete list of partners who have built applications using the DFP API, please visit our &lt;/span&gt;&lt;a href="http://support.google.com/dfp_premium/bin/topic.py?hl=en&amp;amp;topic=2456651"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;partner directory&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class="post-author" style="background-color: white; color: #666666; display: block; font-family: Arial, sans-serif; font-size: x-small; line-height: 20px; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="post-author" style="background-color: white; color: #666666; display: block; font-family: Arial, sans-serif; font-size: x-small; line-height: 20px; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Posted by John Park, Partner Programs Manager, and Adam Rogal, Developer Relations&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7815614485808579332-5173830637488605564?l=googleadsdeveloper.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleAdsDeveloperBlog/~4/9VYYtRZMXrQ" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/V_530eAayhY" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GoogleAdsDeveloperBlog/~3/9VYYtRZMXrQ/editors-note-wed-like-to-share-with-you.html</feedburner:origLink></entry>

 <entry>
 <title>Announcing v201201 of the DFP API</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/yxXfmOVMkq0/announcing-v201201-of-dfp-api.html" />
 <id>tag:blogger.com,1999:blog-7815614485808579332.post-1126164877319273523</id>
 <published>2012-02-06T15:00:00.000-08:00</published>
 <updated>2012-02-06T15:19:57.685-08:00</updated>
 <summary type="html">The newest version of the API, v201201, brings some frequently requested features including using date time strings in PQL statements, filtering objects based on last modified date and...</summary>
 <content type="html">&lt;div dir="ltr" style="text-align: left;"&gt;
The newest version of the API, v201201, brings some frequently requested features including using date time strings in PQL statements, filtering objects based on last modified date and times, including a PQL statement to limit a report (such as just running a report for one order), and more. A full list of features can be found on our &lt;a href="http://code.google.com/apis/dfp/docs/rel_notes.html"&gt;release notes page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Filtering&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In v201201, we&#x2019;ve focused on improving filtering with PQL statements across the entire API. We&#x2019;ve introduced a better way to do &lt;a href="http://code.google.com/apis/dfp/docs/pqlreference.html#syntax"&gt;date time filtering&lt;/a&gt;, a new &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/LineItemService.LineItem.html#lastModifiedDateTime"&gt;lastModifiedDateTime&lt;/a&gt;&amp;nbsp;field to search on, and the ability to &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/ReportService.ReportQuery.html#statement"&gt;filter&lt;/a&gt; from within a report.&lt;br /&gt;
&lt;br /&gt;
With the ability to filter by date and time fields directly in the PQL statement, you&#x2019;ll now be able to limit the objects on the server, rather than fetch all line items and checking their &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/LineItemService.LineItem.html#startDateTime"&gt;startDateTime&lt;/a&gt; property one at a time. For example, if you want to retrieve all line items that started so far in January, include
&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;startDateTime&lt;/pre&gt;
as a predicate of your filter with a date and time string, e.g. &lt;br /&gt;
&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE startDateTime &amp;gt;= &#x2018;2012-01-01T00:00:00&#x2019;&lt;/pre&gt;
. Note here that the date and time are in ISO 8061 format, i.e. &lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;YYYY-MM-DDThh:mm:ss&lt;/pre&gt;
, and the time zone is assumed to be that of the network&#x2019;s. You can also bind a DateTime object instead of using a string, i.e. &lt;br /&gt;
&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE startDateTime &amp;gt; :dateTime&lt;/pre&gt;
, where &lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;:dateTime&lt;/pre&gt;
is bound to a &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/LineItemService.DateTimeValue.html"&gt;DateTimeValue&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
We&#x2019;ve also added the new &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/LineItemService.LineItem.html#lastModifiedDateTime"&gt;lastModifiedDateTime&lt;/a&gt; field to companies, creatives, ad units, line item creative associations, line items, orders, and placements. Using this field, you can now query for objects that have changed recently. Combined with the new date and time filtering feature mentioned above, you will be able to pull all objects changed so far this year, e.g. &lt;br /&gt;
&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE lastModifiedDateTime &amp;gt;= &#x2018;2012-01-01T00:00:00&#x2019;&lt;/pre&gt;
. If you are a developing an application that has to keep in sync with changes made through the UI, only pulling down objects that have changed since your last fetch time will speed up your calls and decrease processing time.&lt;br /&gt;
&lt;br /&gt;
Finally, one of the largest requests from our developers was to limit what data is returned from within a report. We&#x2019;ve add the ability to define a &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/ReportService.ReportQuery.html#statement"&gt;PQL statement&lt;/a&gt;&amp;nbsp;in a report definition to do just that. Now when you create a report, you&#x2019;ll be able to supply statements to limit it to just one order, e.g.&lt;br /&gt;&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE orderId = :orderId&lt;/pre&gt;, or with only one salesperson as well, e.g. &lt;br /&gt;&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE orderId = :orderId AND salespersonId = :salespersonId&lt;/pre&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Creatives&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In v201102, we&#x2019;ve added three new creative types that are only available to small business networks:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.FlashExpandableCreative.html"&gt;FlashExpandableCreative&lt;/a&gt; - an expandable creative where the collapsed size is a Flash SWF file and the expanded size is another Flash SWF file.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.FlashPushdownCreative.html"&gt;FlashPushdownCreative&lt;/a&gt; - a creative that pushes page content down when the creative expands.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.TextAdCreative.html"&gt;TextAdCreative&lt;/a&gt; - a text-based creative.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Teams&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
We&#x2019;ve introduced a new service with this version, &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/TeamService.html"&gt;TeamService&lt;/a&gt;, which lets you group users into teams. Although currently not editable via the API, teams will be used to limit access to entities such as companies, inventory, and orders.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Coming soon&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Over the next few weeks, you&#x2019;ll learn about all of the features a bit more in the &lt;i&gt;Discover v201201&lt;/i&gt; series starting first with a discussion of filtering and syncing best practices. Let us know if you want to see anything else on our &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://plus.google.com/100742954389084668497"&gt;&lt;img alt="" border="0" height="20" id="BLOGGER_PHOTO_ID_5677875414712016498" src="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt; - &lt;a href="https://plus.google.com/100742954389084668497" rel="author"&gt;Adam Rogal&lt;/a&gt;, DFP API Team
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7815614485808579332-1126164877319273523?l=googleadsdeveloper.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GoogleAdsDeveloperBlog/~4/HLpWIoqh5So" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/yxXfmOVMkq0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GoogleAdsDeveloperBlog/~3/HLpWIoqh5So/announcing-v201201-of-dfp-api.html</feedburner:origLink></entry>

 <entry>
 <title>Google+ Developers Page</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/hwN5ALBJMo4/google-developers-page.html" />
 <id>tag:blogger.com,1999:blog-6884131687395025558.post-3649679884823947044</id>
 <published>2012-02-06T10:03:00.000-08:00</published>
 <updated>2012-02-06T15:15:02.550-08:00</updated>
 <summary type="html">Today we&#x2019;re launching the Google+ Developers page to help you stay connected to all the latest Google+ platform news, events, community, and more. As the lead of the...</summary>
 <content type="html">Today we&#x2019;re launching the &lt;a href="https://plus.google.com/110967630299632321627"&gt;Google+ Developers page&lt;/a&gt; to help you stay connected to all the latest Google+ platform news, events, community, and more.  As the lead of the Google+Developer Relations team, I&#x2019;m really looking forward to meeting you there --&amp;nbsp;&lt;a href="https://plus.google.com/110967630299632321627"&gt;add the page&lt;/a&gt; to your circles to join the conversation, comment on posts, and join our hangouts.&lt;br /&gt;
&lt;br /&gt;
Our team will host regular hangouts to talk about the +Platform, your experiences with it, and share tips and tricks with the community. Our weekly office hours hangouts take place every Wednesday at 11:30am - 12:15pm PDT, and can be accessed from our &lt;a href="https://plus.google.com/110967630299632321627"&gt;Google+ Developers page&lt;/a&gt;.  The +Platform team will also share Google+ developer events, conferences and hackathons, as well as photos and videos of the events.  In addition, we&#x2019;ll announce and discuss our +Platform launches on our page.&lt;br /&gt;
&lt;br /&gt;
2012 is going to be a very exciting year for the Google+ Platform -- I look forward to seeing you on our new &lt;a href="https://plus.google.com/110967630299632321627"&gt;Google+ Developers page&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="post-author"&gt;Posted by &lt;a href="https://plus.google.com/u/1/108189587050871927619/posts"&gt;Chris Chabot&lt;/a&gt;, Google+ Developer Relations Team Lead&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6884131687395025558-3649679884823947044?l=googleplusplatform.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GppBxyz/~4/_AdenE3qyiA" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/hwN5ALBJMo4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GppBxyz/~3/_AdenE3qyiA/google-developers-page.html</feedburner:origLink></entry>

 <entry>
 <title>Google+ Developers Page</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/hwN5ALBJMo4/google-developers-page.html" />
 <id>tag:blogger.com,1999:blog-6884131687395025558.post-3649679884823947044</id>
 <published>2012-02-06T10:03:00.000-08:00</published>
 <updated>2012-02-06T15:15:02.550-08:00</updated>
 <summary type="html">Today we&#x2019;re launching the Google+ Developers page to help you stay connected to all the latest Google+ platform news, events, community, and more. As the lead of the...</summary>
 <content type="html">Today we&#x2019;re launching the &lt;a href="https://plus.google.com/110967630299632321627"&gt;Google+ Developers page&lt;/a&gt; to help you stay connected to all the latest Google+ platform news, events, community, and more.  As the lead of the Google+Developer Relations team, I&#x2019;m really looking forward to meeting you there --&amp;nbsp;&lt;a href="https://plus.google.com/110967630299632321627"&gt;add the page&lt;/a&gt; to your circles to join the conversation, comment on posts, and join our hangouts.&lt;br /&gt;
&lt;br /&gt;
Our team will host regular hangouts to talk about the +Platform, your experiences with it, and share tips and tricks with the community. Our weekly office hours hangouts take place every Wednesday at 11:30am - 12:15pm PDT, and can be accessed from our &lt;a href="https://plus.google.com/110967630299632321627"&gt;Google+ Developers page&lt;/a&gt;.  The +Platform team will also share Google+ developer events, conferences and hackathons, as well as photos and videos of the events.  In addition, we&#x2019;ll announce and discuss our +Platform launches on our page.&lt;br /&gt;
&lt;br /&gt;
2012 is going to be a very exciting year for the Google+ Platform -- I look forward to seeing you on our new &lt;a href="https://plus.google.com/110967630299632321627"&gt;Google+ Developers page&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="post-author"&gt;Posted by &lt;a href="https://plus.google.com/u/1/108189587050871927619/posts"&gt;Chris Chabot&lt;/a&gt;, Google+ Developer Relations Team Lead&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6884131687395025558-3649679884823947044?l=googleplusplatform.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/GppBxyz/~4/_AdenE3qyiA" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/hwN5ALBJMo4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/GppBxyz/~3/_AdenE3qyiA/google-developers-page.html</feedburner:origLink></entry>

 <entry>
 <title>Google Summer of Code 2012 is on!</title>
 <link href="http://feedproxy.google.com/~r/GoogleCodeNews/~3/tJDpa3fS_Gg/google-summer-of-code-2012-is-on.html" />
 <id>tag:blogger.com,1999:blog-11300808.post-8605006089090825074</id>
 <published>2012-02-04T12:08:00.000-08:00</published>
 <updated>2012-02-04T12:08:38.312-08:00</updated>
 <summary type="html">By Carol Smith, Open Source Team Cross-posted with the Google Open Source Blog Today at FOSDEM I was proud to announce Google Summer of Code 2012. This will...</summary>
 <content type="html">&lt;br /&gt;
&lt;em&gt;By Carol Smith, Open Source Team&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Cross-posted with the &lt;a href="http://google-opensource.blogspot.com/"&gt;Google Open Source Blog&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="" style="text-align: center;"&gt;&lt;a href="http://code.google.com/soc/" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" src="http://2.bp.blogspot.com/-0Z4BTG1iJDs/TyG9uyApFrI/AAAAAAAAAhY/raFJlaZqdes/s320/GSOC+12+logo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Today at &lt;a href="http://fosdem.org/2012/" target="blank"&gt;FOSDEM&lt;/a&gt; I was proud to announce &lt;i&gt;&lt;a href="http://code.google.com/soc/" target="blank"&gt;Google Summer of Code&lt;/a&gt; &lt;/i&gt;2012.&lt;br /&gt;
&lt;br /&gt;
This will be the 8th year for &lt;i&gt;Google Summer of Code&lt;/i&gt;, an innovative program dedicated to introducing students from colleges and universities around the world to open source software development. The program offers student developers stipends to write code for various open source projects with the help of mentoring organizations from all around the globe. Over the past seven years &lt;i&gt;Google Summer of Code&lt;/i&gt; has had 6,000 students from over 90 countries complete the program. Our goal is to help these students pursue academic challenges over the summer break while they create and release open source code for the benefit of all.&lt;br /&gt;
&lt;br /&gt;
Spread the word to your friends! If you know of a university student that would be interested in working on open source projects this summer, or if you know of an organization that might want to mentor students to work on their open source projects, please direct them to our &lt;i&gt;Google Summer of Code&lt;/i&gt; 2012 &lt;a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2012" target="blank"&gt;website&lt;/a&gt; where they can find our &lt;a href="http://www.google-melange.com/gsoc/events/google/gsoc2012" target="blank"&gt;timeline&lt;/a&gt; along with the &lt;a href="http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2012/faqs" target="blank"&gt;FAQs&lt;/a&gt;. And stay tuned for more details coming soon!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Posted by &lt;a href="https://profiles.google.com/u/0/105627346610764729807/about"&gt;Scott Knaster&lt;/a&gt;, Editor&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/11300808-8605006089090825074?l=googlecode.blogspot.com" width="1" /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=qDZQQf1XBLI:3aaodOxfAho:-BTjWOF_DHI"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?i=qDZQQf1XBLI:3aaodOxfAho:-BTjWOF_DHI" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=qDZQQf1XBLI:3aaodOxfAho:yIl2AUoC8zA"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/Dcni?a=qDZQQf1XBLI:3aaodOxfAho:V_sGLiPBpWU"&gt;&lt;img border="0" src="http://feeds.feedburner.com/~ff/blogspot/Dcni?i=qDZQQf1XBLI:3aaodOxfAho:V_sGLiPBpWU" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height="1" src="http://feeds.feedburner.com/~r/blogspot/Dcni/~4/qDZQQf1XBLI" width="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/GoogleCodeNews/~4/tJDpa3fS_Gg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://feedproxy.google.com/~r/blogspot/Dcni/~3/qDZQQf1XBLI/google-summer-of-code-2012-is-on.html</feedburner:origLink></entry>

 
</feed>

