<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Google Data &#187; Ali Pasha</title>
	<atom:link href="/author/ali-pasha/feed/" rel="self" type="application/rss+xml" />
	<link>https://googledata.org</link>
	<description>Everything Google: News, Products, Services, Content, Culture</description>
	<lastBuildDate>Thu, 19 Mar 2015 22:49:02 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.7.5</generator>
	<item>
		<title>A fresh look for Google Project Hosting</title>
		<link>https://googledata.org/google-code/a-fresh-look-for-google-project-hosting/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-fresh-look-for-google-project-hosting</link>
		<comments>https://googledata.org/google-code/a-fresh-look-for-google-project-hosting/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 02:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Simplicity is key to longevity. Since we launched in 2006, even as we’ve added new features, we’ve had very little desire to change our user interface. It’s simple, it’s clean, it’s quick -- and as engineers, we like it.However, the look of o...]]></description>
				<content:encoded><![CDATA[Simplicity is key to longevity. Since we launched in 2006, even as we’ve added <a href="http://code.google.com/p/support/wiki/WhatsNew">new features</a>, we’ve had very little desire to change our user interface. It’s simple, it’s clean, it’s quick -- and as engineers, we like it.<br /><br />However, the look of other Google products has evolved significantly in the last four years. Rounded corners, for example, are not used as aggressively as they used to be. Therefore, we’ve pushed out a small set of changes that update the style of our pages.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_wBmHqycvPGw/TP0LOYjl_3I/AAAAAAAAAZs/PhWPBS5gMYk/s1600/gwt.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 286px;" src="http://2.bp.blogspot.com/_wBmHqycvPGw/TP0LOYjl_3I/AAAAAAAAAZs/PhWPBS5gMYk/s320/gwt.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5547602657728135026"></a><br /><br />Take a look at the <a href="http://code.google.com/hosting/createProject">project creation page</a>, <a href="http://code.google.com/p/google-web-toolkit/">project pages</a>, and <a href="http://code.google.com/u/sussman/">user profile page</a> and give us your <a href="https://groups.google.com/forum/#forum/google-code-hosting">feedback</a>. We look forward to hearing what you think.<br /><br /><br /><font style="font-style: italic;" class="byline-author">By Ali Pasha, Google Project Hosting</font><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-3041622696940398667?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/a-fresh-look-for-google-project-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Sharing the Joy of Creating Android Apps with Everyone</title>
		<link>https://googledata.org/google-code/sharing-the-joy-of-creating-android-apps-with-everyone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharing-the-joy-of-creating-android-apps-with-everyone</link>
		<comments>https://googledata.org/google-code/sharing-the-joy-of-creating-android-apps-with-everyone/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 17:51:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Sharing the joy of building software with someone that doesn’t have an engineering background is hard. Today it got a little easier with App Inventor for Android.App Inventor for Android is a Google Labs project that makes it possible to create compl...]]></description>
				<content:encoded><![CDATA[<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wBmHqycvPGw/TDtYiDl_-YI/AAAAAAAAAVU/QWoBe5fHkGw/s1600/android_app_inventor-78.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 78px; height: 78px;" src="http://1.bp.blogspot.com/_wBmHqycvPGw/TDtYiDl_-YI/AAAAAAAAAVU/QWoBe5fHkGw/s320/android_app_inventor-78.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5493081512611936642" /></a><p>Sharing the joy of building software with someone that doesn’t have an engineering background is hard. Today it got a little easier with App Inventor for Android.</p><p><a href="http://appinventor.googlelabs.com">App Inventor for Android</a> is a Google Labs project that makes it possible to create complex Android applications without having to write any code. This is because, instead of writing code, you can visually design the way the app looks and use blocks to specify behavior. </p><p><a href="http://appinventor.googlelabs.com/learn/tutorials/whacamole/whacamole.html"><img width="600" height="400" src="http://appinventor.googlelabs.com/learn/tutorials/whacamole/WhacAMoleAssets/WhacAMoleComplete.png" /><span class="Apple-style-span"  style="color:#000000;"><br /></span></a></p><p>This helps introduce concepts about logic and programming in a compelling way, without getting lost in syntax and code. And while App Inventor for Android doesn’t have every feature available in the latest <a href="http://developer.android.com/sdk/index.html">Android SDK</a>, it has been used to create some very <a href="http://appinventor.googlelabs.com/learn/gallery.html">compelling applications</a>.</p><p>For more information about how to participate, take a look at the announcement on the <a href="http://googleblog.blogspot.com/2010/07/app-inventor-for-android.html">Google Blog</a>.</p><p>We look forward to seeing what you think and hearing about your stories. And, yes, the irony of writing a Google Code blog post about avoiding the need to code is not lost on me. :-)</p><p><i><span class="Apple-style-span"  style="font-size:small;">App Inventor for Android is possible due to some significant work done in research on education computing </span><a href="http://appinventor.googlelabs.com/about/index.html#giants"><span class="Apple-style-span"  style="font-size:small;">both inside and outside Google</span></a><span class="Apple-style-span"  style="font-size:small;">. The brainchild of Hal Abelson (visiting faculty), App Inventor for Android is an effort to see if the nature of introductory computing can be changed.</span></i></p><p><i>By Ali Pasha, Google Developer Programs</i></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-8181267342203754554?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/sharing-the-joy-of-creating-android-apps-with-everyone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Announcing Eclipse Labs</title>
		<link>https://googledata.org/google-code/announcing-eclipse-labs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=announcing-eclipse-labs</link>
		<comments>https://googledata.org/google-code/announcing-eclipse-labs/#comments</comments>
		<pubDate>Thu, 13 May 2010 17:40:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Many of us here at Google, along with the open source community, use the Eclipse IDE when we develop for Android, App Engine, and Google Chrome. We also have a lot of Google engineers that use Eclipse to build our own internal products. So, when the Ec...]]></description>
				<content:encoded><![CDATA[<img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 116px; height: 55px;" src="http://4.bp.blogspot.com/_wBmHqycvPGw/S-wV9Orhd_I/AAAAAAAAAUw/J5j2fNxZKK4/s320/eclipselabs.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5470771789005158386" /><br /><br /><div><br /><br /></div><div><br /><div>Many of us here at Google, along with the open source community, use the <a href="http://eclipse.org/">Eclipse IDE</a> when we develop for <a href="http://developer.android.com/sdk/eclipse-adt.html">Android</a>, <a href="http://googlewebtoolkit.blogspot.com/2009/04/google-plugin-for-eclipse-peanut-butter.html">App Engine</a>, and <a href="http://blog.chromium.org/2009/08/google-chrome-developer-tools-for.html">Google Chrome</a>. We also have a lot of Google engineers that use Eclipse to build our own internal products. So, when the Eclipse Foundation approached us with an idea to encourage the Eclipse ecosystem, we were very happy to help.<br /><br />Today, we’re excited to announce the result of our collaboration: a Beta version of Eclipse Labs powered by <a href="http://code.google.com/projecthosting">Google Project Hosting</a>, a single place where anyone can start and maintain their open source projects based on the Eclipse platform with just a few clicks.<br /><br />The goal of Eclipse Labs is to improve the visibility of unofficial add-on projects. We hope that this will help Eclipse users find those projects quickly and that it will help popular projects get on the path to becoming <a href="http://www.eclipse.org/projects/">Eclipse Foundation projects</a>. For more information, see the Eclipse Foundation’s <a href="http://dev.eclipse.org/blogs/mike/2010/05/13/introducing-eclipse-labs/">blog post</a>.<br /><br />To get this community started, we’re eager to seed Eclipse Labs with <a href="http://code.google.com/hosting/search?q=label:eclipse">Eclipse add-on projects currently on Google Code</a>. If you have an add-on for Eclipse that you would like to move to Eclipse Labs from Google Code, please let us know by filing a <a href="http://code.google.com/p/support/issues/entry?template=Migration%20request">migration request</a>.<br /><br />Here are a few projects that have already migrated:<ul><li><a href="http://google-opensource.blogspot.com/2010/05/introducing-workspace-mechanic-for.html">Workspace Mechanic</a> - Workspace Mechanic for Eclipse</li><li><a href="http://code.google.com/a/eclipselabs.org/p/projecthosting-connector-for-mylyn/">Project Hosting Connector for Mylyn</a> - Eclipse plug-in for Google Project Hosting issue tracker</li></ul>Let us know what you think in our <a href="http://groups.google.com/group/google-code-hosting">developer forum</a> and if you’re attending Google I/O, be sure to drop by the <a href="http://code.google.com/events/io/2010/sandbox.html#Social%20Web">Developer Sandbox for Eclipse</a> or visit the Google Project Hosting team during <a href="http://code.google.com/events/io/2010/officehours.html">office hours</a>.<br /><br /><div><span style="font-style: italic;" class="byline-author"><br /></span></div><div><span style="font-style: italic;" class="byline-author">By Ali Pasha, Product Manager, Google Project Hosting</span></div></div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-4532443392046327763?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/announcing-eclipse-labs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Faster Subversion Hosting for Project Hosting on Google Code</title>
		<link>https://googledata.org/google-code/faster-subversion-hosting-for-project-hosting-on-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=faster-subversion-hosting-for-project-hosting-on-google-code</link>
		<comments>https://googledata.org/google-code/faster-subversion-hosting-for-project-hosting-on-google-code/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 17:21:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[When we launched our first Subversion-on-Bigtable service in 2006 our goal was to scale to support hundreds of thousands of projects, with the idea that we could continue to improve the service over time. A year ago, however, we realized that we would ...]]></description>
				<content:encoded><![CDATA[When we launched our first Subversion-on-<a href="http://labs.google.com/papers/bigtable.html">Bigtable</a> service in <a href="http://googlecode.blogspot.com/2006/08/project-hosting-r-us.html">2006</a> our goal was to scale to support hundreds of thousands of projects, with the idea that we could continue to improve the service over time. A year ago, however, we realized that we would have to rebuild our Subversion service to make dramatic improvements in performance. So, we did what we had to do: we rebuilt our service from the ground up, focusing on speed and reliability.<br /><br />We are now happy to announce that we have rolled out our new service to all our Subversion users. As a result, most common Subversion operations are about 3 times faster than they used to be.<br /><br />One of the features of Subversion's HTTP-based protocol is that anyone can browse repositories through a normal web browser. Many open source projects hosted on Google Code use this feature to host websites for their project or post the latest versions of their software. We didn't anticipate how popular this would be when we designed our first Subversion service, but our new system has special optimizations for browser access. Latency for these pages are much lower and international users will see a dramatic improvement. We also set the appropriate caching headers, which can be manually controlled with the <a href="http://code.google.com/p/support/wiki/SubversionFAQ#How_do_I_set_the_cache_headers_for_Subversion?">google-cache-control</a> Subversion property.<br /><br />To improve our reliability, our new service now has a custom replication system based on the <a href="http://en.wikipedia.org/wiki/Paxos_algorithm">Paxos algorithm</a>. Whenever you make a change to your repository, the new data is now copied to several different data centers before our service reports that the commit has succeeded --- so you can code in peace knowing that your data is stored safely in multiple locations.<br /><br />If you haven’t already, we encourage you to try out our new Subversion service and let us know what you <a href="https://groups.google.com/group/google-code-hosting?pli=1">think</a>.<br /><br /><span style="font-style: italic;" class="byline-author">By Jon Trowbridge and Tony Zale, Google Project Hosting</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-8499060615050470578?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/faster-subversion-hosting-for-project-hosting-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Issue Tracker Data API for Project Hosting</title>
		<link>https://googledata.org/google-code/issue-tracker-data-api-for-project-hosting/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=issue-tracker-data-api-for-project-hosting</link>
		<comments>https://googledata.org/google-code/issue-tracker-data-api-for-project-hosting/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 19:07:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I'm excited to announce the Issue Tracker Data API for Project Hosting on Google Code! The Issue Tracker Data API is a Google Data API that you can use to programmatically add new issues, make changes to existing issues, or simply access issues for you...]]></description>
				<content:encoded><![CDATA[I'm excited to announce the Issue Tracker Data API for Project Hosting on Google Code! The Issue Tracker Data API is a <a href="http://code.google.com/apis/gdata/">Google Data API</a> that you can use to programmatically add new issues, make changes to existing issues, or simply access issues for your open source project.<br /><br />This means that the issue tracker data for your open source code is now <a href="http://www.dataliberation.org/google/code-project-hosting">liberated</a>!<br /><br />To get started with the API, please refer to the following documentation:<br /><ul><br /><li><a href="http://code.google.com/p/support/wiki/IssueTrackerAPI">Issue Tracker Data API Overview</a></li><br /><li><a href="http://code.google.com/p/support/wiki/IssueTrackerAPIJava">Issue Tracker Data API for Java</a></li><br /><li><a href="http://code.google.com/p/support/wiki/IssueTrackerAPIPython">Issue Tracker Data API for Python</a></li><br /><li><a href="http://code.google.com/p/support/wiki/IssueTrackerAPIReference">Issue Tracker Data API Reference</a></li><br /></ul>If you find yourself digging into the API and creating something useful that others can use, please let us <a href="http://groups.google.com/group/google-code-hosting">know</a> and we'll be sure to add it to our documentation. As always, your <a href="http://groups.google.com/group/google-code-hosting">feedback</a> is also welcome.<br /><br />The team would also like to thank Joe LaPenna, who contributed the Python client for the Issue Tracker Data API in his 20% time.<br /><br /><span style="font-style: italic;" class="byline-author">By Jacob Moon, Google Project Hosting</span><br /><br />Update: <a href="http://blog.bestpractical.com/2009/10/netgooglecode-now-with-support-for-googles-issues-api.html">Net::Google::Code now supports the Issue Tracker Data API</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-7480955848343941210?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/issue-tracker-data-api-for-project-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mercurial server-side clone support for Project Hosting on Google Code</title>
		<link>https://googledata.org/google-code/mercurial-server-side-clone-support-for-project-hosting-on-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mercurial-server-side-clone-support-for-project-hosting-on-google-code</link>
		<comments>https://googledata.org/google-code/mercurial-server-side-clone-support-for-project-hosting-on-google-code/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 20:26:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[When we launched Mercurial support our goal was to get to a point where we could enable a social coding experience. Today, I am happy to announce that today we have support for both 'project' clones and 'user' clones.Project owners can now create multi...]]></description>
				<content:encoded><![CDATA[When we <a id="dotl" href="http://googlecode.blogspot.com/2009/04/mercurial-support-for-project-hosting.html" title="launched Mercurial support">launched Mercurial support</a> our goal was to get to a point where we could enable a social coding experience. Today, I am happy to announce that today we have support for both 'project' clones and 'user' clones.<br /><br />Project owners can now create multiple repositories for their project, and they can choose to make any of those new repositories a clone of any of the project's other repositories. These project clones share the same commit access permissions as the original project and make it easier for project members to work together on new features. A common pattern in the Mercurial world is to place each "official" branch into a separate repository with naming conventions like "project-crew", "project-stable", and so on.<br /><br />In addition to project clones, any user can visit any Mercurial repository and create a server-side user clone of that repository, without asking permission from the project owner. These personal user clones can be easily shared with other developers -- who also can make a clone of that clone. Once a user has finished her changes in a user clone, she can coordinate with the canonical project's contributors to review and incorporate her changes.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_4E9RvKH2MuA/Ss-cou5ocuI/AAAAAAAAOBo/xKeQBHMlKeo/s1600-h/Clones.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 202px;" src="http://4.bp.blogspot.com/_4E9RvKH2MuA/Ss-cou5ocuI/AAAAAAAAOBo/xKeQBHMlKeo/s320/Clones.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5390699502584230626" /></a><br /><br />User clones aren't <a id="khp5" href="http://catb.org/jargon/html/F/fork.html" title="forks">forks</a>, in the traditional sense, where a fork has little intention to contribute back to the original project. Rather, the entire purpose of a user clone is to allow users to contribute to projects without requiring official commit access permissions. Because mercurial is a distributed (peer-to-peer) version control system, it excels at branching and merging.  If the project maintainers like the new code, they just "pull" the changesets from the clone and merge them into an official project repository.  It's all much more elegant than emailing patches back and forth, anonymous contributors get to use the same tools as core developers.<br /><br />The instructions for creating a user clone can be found on the checkout page for any Mercurial project (e.g. <a href="http://code.google.com/p/twisty/source/checkout" id="p9o6" title="twisty" style="color: rgb(85, 26, 139); ">twisty</a>) and existing clones for a project can be found under the Clones sub-tab under Source.<br /><br />Please let us know if you have any <a href="http://groups.google.com/group/google-code-hosting" id="vy7h" title="feedback" style="color: rgb(85, 26, 139); ">feedback</a> or find any <a href="http://code.google.com/p/support/issues" id="kqin" title="issues">issues</a>. Happy cloning!<br /><br /><span style="font-style: italic;" class="byline-author">By Nathaniel Manista and Jacob Lee, Project Hosting on Google Code </span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-3173483142774108088?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/mercurial-server-side-clone-support-for-project-hosting-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Breaking the Persian language barrier with the AJAX APIs</title>
		<link>https://googledata.org/google-code/breaking-the-persian-language-barrier-with-the-ajax-apis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-the-persian-language-barrier-with-the-ajax-apis</link>
		<comments>https://googledata.org/google-code/breaking-the-persian-language-barrier-with-the-ajax-apis/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 21:45:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[There are several barriers to the free flow of information, but the language barrier is one that we can reduce with a little help from the developer community.To encourage the sharing of ideas and information across the web, early last year we announce...]]></description>
				<content:encoded><![CDATA[There are several barriers to the free flow of information, but the language barrier is one that we can reduce with a little help from the developer community.<br /><br />To encourage the sharing of ideas and information across the web, early last year we announced the <a href="http://googleajaxsearchapi.blogspot.com/2008/03/introducing-ajax-language-api-tools-for.html">AJAX Language API</a>. Then, a few weeks ago we announced the <a href="http://googleajaxsearchapi.blogspot.com/2009/06/introducing-virtual-keyboard-api.html">Virtual Key board API</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_4E9RvKH2MuA/SmD-NMMcLnI/AAAAAAAALh0/Klc_H2PUDvk/s1600-h/persian-keyboard.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://3.bp.blogspot.com/_4E9RvKH2MuA/SmD-NMMcLnI/AAAAAAAALh0/Klc_H2PUDvk/s400/persian-keyboard.png" alt="" id="BLOGGER_PHOTO_ID_5359563059136048754" border="0" /></a><br />In the span of a few months, developers have already started to integrate these APIs in very innovative ways: <a href="http://www.vastrank.com/">Vast Rank</a>, <a href="http://www.mibbit.com/">Mibbit.com</a>, and <a href="http://www.youtube.com/watch?v=8u5H_pSyAG0">Jeevansathi</a>.<br /><br />Today, I'm happy to announce that we are supporting Persian in the Language API. This comes on the heels of our announcement that we support <a href="http://googleblog.blogspot.com/2009/06/google-translates-persian.html">Persian on Google Translate</a>.<br /><br />With this launch, the <a href="http://code.google.com/intl/fa/apis/ajaxlanguage/documentation/"> documentation</a> for the AJAX Language API has been translated into Persian (the first right-to-left language supported on Google Code)  and both the <a href="http://code.google.com/intl/en/apis/ajaxlanguage/documentation/reference.html">AJAX Language API</a> and <a href="http://code.google.com/intl/en/apis/ajaxlanguage/documentation/referenceKeyboard.html">Virtual Keyboard API</a> now support Persian.<br /><br />I encourage you to use this API and to make this world a smaller place. Thanks!<br /><br /><div dir="rtl"><div style="text-align: right;">API زبان AJAX فارسی را پشتیبانی میکند.<br /><br />موانع متعددی بر سر راه جریان آزاد اطلاعات وجود دارد. اما ما می توانیم موانع ترجمه را با کمی کمک از طرف برنامه نویسان کاهش دهیم.<br /><br />برای تشویق به اشتراک گذاشتن ایده ها و اطلاعات در سراسر وب ، در اوایل سال گذشته ما <a href="http://googleajaxsearchapi.blogspot.com/2008/03/introducing-ajax-language-api-tools-for.html">AJAX زبان API</a> و سپس ، چند هفته پیش<a href="http://googleajaxsearchapi.blogspot.com/2009/06/introducing-virtual-keyboard-api.html"> صفحه کلید مجازی API</a> را راه اندازی کردیم.<br /><br />پس از تنها چند ماه برنامه نویسان به طرق بسيار خلاقانه ای شروع به استفاده از این API ها کرده اند:<br /><a href="http://www.vastrank.com/">Vast Rank</a><br /><a href="http://www.mibbit.com/">Mibbit.com</a><br /><a href="http://www.youtube.com/watch?v=8u5H_pSyAG0">Jeevansathi</a><br /><br />امروز، من با خوشحالی اعلام می کنم که ما شروع به پشتیبانی از فارسی در API زبان کرده ایم. این اقدام پس از اعلان پشتیبانی ما از <a href="http://googleblog.blogspot.com/2009/06/google-translates-persian.html">ترجمه فارسی در گوگل</a><span><span> می</span></span> آید .<br /><br />با این پرتاب ،<a href="http://code.google.com/intl/fa/apis/ajaxlanguage/documentation/">اسناد AJAX زبان API به فارسی ترجمه شده است (که اولین اقدام به پشتیبانی از یک زبان سمت راست به چپ در کد گوگل می باشد)</a>  و هر دوی  AJAX زبان API و API صفحه مجازی کلید در حال حاضر فارسی را پشتیبانی می کنند.<br /><br />من شما را به استفاده از این API تشویق می کنم با این امید که این جهان را به یک محل در دسترس بدل کنیم. با تشکر!<br /></div></div><br /><br /><span style="font-style: italic;" class="byline-author">By Ali Pasha and Adam Feldman, Google Developer Programs</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-4975162123819451087?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/breaking-the-persian-language-barrier-with-the-ajax-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Follow us on @GoogleCode</title>
		<link>https://googledata.org/google-code/follow-us-on-googlecode/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=follow-us-on-googlecode</link>
		<comments>https://googledata.org/google-code/follow-us-on-googlecode/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 17:09:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Google Code now has a home on Twitter - introducing @GoogleCode! Expect our tweets to be a nice mix of developer product announcements, Code Blog coverage, coding tips and tricks, interesting tech news and commentary, developer events, and more.If you ...]]></description>
				<content:encoded><![CDATA[Google Code now has a home on Twitter - introducing <a href="http://twitter.com/GoogleCode">@GoogleCode</a>! Expect our tweets to be a nice mix of developer product announcements, Code Blog coverage, coding tips and tricks, interesting tech news and commentary, developer events, and more.<br /><br />If you have any suggestions for what you want to see, feel free to send an @reply. We can't guarantee to respond to everyone, but we'd like to hear your feedback and suggestions for @GoogleCode or our developer products.<br /><br /><span style="font-style: italic;" class="byline-author">By </span><i>Christine Tsai</i><span style="font-style: italic;" class="byline-author">, Google Developer Programs</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-2970257333526988053?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/follow-us-on-googlecode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O3D update: New capabilities and expanded compatibility</title>
		<link>https://googledata.org/google-code/o3d-update-new-capabilities-and-expanded-compatibility/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=o3d-update-new-capabilities-and-expanded-compatibility</link>
		<comments>https://googledata.org/google-code/o3d-update-new-capabilities-and-expanded-compatibility/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 22:06:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[We're happy to announce that today we shipped a substantial update to O3D, an API for creating rich 3D applications in a web browser.  With today's release, we focused on addressing  a theme we heard in the requests and feedback from the community: tha...]]></description>
				<content:encoded><![CDATA[We're happy to announce that today we shipped a substantial update to <a href="http://code.google.com/apis/o3d" id="dhvf" title="O3D">O3D</a>, an API for creating rich 3D applications in a web browser.  With today's release, we focused on addressing  a theme we heard in the requests and feedback from the community: that O3D should run as well as possible on many different types of hardware.  Toward that end, we're releasing two new additions: software rendering and <a href="http://code.google.com/apis/o3d/docs/performance.html#gpuhardware" id="h.1q" title="feature requirements">feature requirements</a>.  If you've already installed the O3D plugin, you should receive these additions automatically.<br /><br /><div> Software rendering allows O3D to use the main processor to render 3D images if the machine running the app doesn't have supported graphics hardware. While the hardware O3D requires to run in hardware-accelerated mode is fairly modest by today's standards (a DirectX 9, Pixel Shader 2.0 capable graphics card), there are nonetheless PCs that don't meet these requirements, and we think it's important for web apps to run on all machines, regardless of hardware. </div> <div><br /></div> <div> Because software rendering is significantly slower than hardware-accelerated rendering, we're also introducing a concept called "<a id="l8bu" title="feature requests">feature requirements</a>" that will help minimize how often O3D will have to fall back to software rendering. Feature requirements allow developers to state upfront that their app will require certain hardware capabilities to render properly. If the machine running the app supports those features, O3D will run it fully hardware accelerated; if however, it is lacking any of the required capabilities, O3D will drop into a software rendered mode. Anecdotally, we found that this tiering allows 45 of our 48 samples to now run in hardware-accelerated mode with less capable graphics cards. </div> <div><br /></div>    Finally, while it has nothing to do with extending hardware support, we're also adding a couple other goodies: a <a href="http://code.google.com/apis/o3d/docs/fullscreen.html" id="owmp" title="full-screen mode">full-screen mode</a> to make O3D apps more absorbing and a <a href="http://code.google.com/apis/o3d/docs/gallery.html" id="xjw6" title="Community Gallery">community gallery</a> to feature cool demos that use O3D (like <a href="http://blog.largeanimal.com/" id="py8e" title="Infinite Journey">Infinite Journey</a>, the first game developed outside Google using O3D). If you've developed an application or sample that would be useful to the O3D community, please be sure to submit it for our team to review for inclusion in the gallery using <a href="http://spreadsheets.google.com/viewform?key=rmM9ht25mcbJ0uXsFstgmCQ&amp;hl=en" id="yi65" title="this form">this form</a>.<br /><br /><div>  <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.largeanimal.com/demo"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 610px; height: 457px;" src="https://docs.google.com/a/google.com/File?id=cg4trxrp_10gv5k75dp_b" alt="" border="0" /></a></div><span style="font-style: italic;" class="byline-author">By </span><span style="font-style: italic;">Henry Bridge</span><span style="font-style: italic;" class="byline-author">, Product Manager</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-139002336163394174?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/o3d-update-new-capabilities-and-expanded-compatibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gmail for Mobile HTML5 Series : Cache Pattern For Offline HTML5 Web Applications</title>
		<link>https://googledata.org/google-code/gmail-for-mobile-html5-series-cache-pattern-for-offline-html5-web-applications/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gmail-for-mobile-html5-series-cache-pattern-for-offline-html5-web-applications</link>
		<comments>https://googledata.org/google-code/gmail-for-mobile-html5-series-cache-pattern-for-offline-html5-web-applications/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 00:14:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[On April 7th, Google launched a new version of Gmail for mobile for iPhone and Android-powered devices. We shared the behind-the-scenes story through this blog and decided to share more of our learnings in a brief series of follow-up blog posts. This w...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;font-size:78%;" ></span><span style="font-style: italic;font-size:85%;" >On April 7th, Google launched a new version of Gmail for mobile for iPhone and Android-powered devices. We shared the behind-the-scenes story through this blog and decided to share more of our learnings in a brief series of follow-up blog posts. This week, I'll talk about the cache pattern for building offline-capable web applications.</span><i><span style="font-size:78%;"><span style="font-style: italic;font-size:78%;" ></span><br /></span></i> <p>I recently gave a talk (preserved <a href="http://www.youtube.com/watch?v=aQ9w--W4J6U">YouTube</a> here) about the cache pattern and the <a href="http://google-code-updates.blogspot.com/2009/05/gmail-for-mobile-html5-series-common.html">Web Storage Portability Layer</a> (WSPL) at Google I/O. It was exciting getting to give a talk at the Moscone Center as previously I had only ever been one of the audience members. The conference seemed to go by in a blur for me as I was sleep-deprived from getting the WSPL to "just good enough" to actually be released. (And some ofyou have already pointed out that I missed several bugs.)  In my talk, I provided a general overview of the cache pattern and this post expands on the handling of hit determination and merging server and local changes.<br /></p>       <p>The cache pattern is a design pattern for building an offline-capable web application. We implemented the cache pattern to make Gmail for Mobile tolerant of flaky wireless connections but the approach is generally applicable. Here's how it works. Consider a typical AJAX application. As shown in the diagram, we have a web application with a local model, view and controllers. The user interacts with theapplication and the controller dispatches XmlHttpRequests (XHRs for short) to the server. The server sends asynchronous requests to the application which it inserts into the model.<br /></p>   <h3 class="post-title entry-title"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://docs.google.com/a/google.com/File?id=dd6mf42g_11gwcmkfcd_b"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 476px; height: 105px;" src="https://docs.google.com/a/google.com/File?id=dd6mf42g_11gwcmkfcd_b" alt="" border="0" /></a></h3><p>As shown in this next diagram, in the cache pattern, we insert a cache between the application and the server. Having done so, many requests that would otherwise require a round-trip to the network.<br /></p><h3 class="post-title entry-title"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://docs.google.com/a/google.com/File?id=dd6mf42g_12ckg2skf3_b"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 476px; height: 105px;" src="https://docs.google.com/a/google.com/File?id=dd6mf42g_12ckg2skf3_b" alt="" border="0" /></a></h3><p>A software cache like this one shares a great deal conceptually with hardware caches. When designing the cache used in Gmail for mobile, we used this similarity to guide our design. For example, to keep our cache as simple as possible, we implemented a software equivalent to a write-through cache with early forwarding and LRU eviction. The cache pattern in general (and consequently our implementation) has four important data flows as shown in the diagram.</p><h3 class="post-title entry-title"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://docs.google.com/a/google.com/File?id=dd6mf42g_13f75f4wcc_b"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 536px; height: 257px;" src="https://docs.google.com/a/google.com/File?id=dd6mf42g_13f75f4wcc_b" alt="" border="0" /></a></h3> <div><ul><li>Cached content bound for the UI.</li><li>Changes made to the cache by the user in the UI. These need to be both reliably sent to the server and updated locally in the cache so that reads from the cache for UI updates show the state including user changes.</li><li>The changes recorded in the cache need to be sent upstream to the server as the network connection is available.</li><li>Changes made to the server (like email delivery in the case of Gmail) need to be merged into the contents of the cache.</li></ul></div><div>As shown in the diagram we also need a place to actually write the data. We use the <a id="pdq1" href="http://code.google.com/p/webstorageportabilitylayer/" title="WSPL">WSPL</a> library to write a cache implementation portable across both Gears and HTML5 databases.<br /><br />To actually implement these four data flows, we need to decide on a hit determination mechanism, a coherency strategy and a refresh approach.<br /></div><br /><div style="font-weight: bold;"><span style="font-size:130%;">Hit Determination</span></div><br /><div>At its heart, a cache is a mapping from keys to values: the UI invokes the cache with a key and the cache returns the corresponding element. While this sounds pretty simple, there is an additional source of complexity if the application wants to provide the user with summary listings of some subset of all values available from the server. To provide this feature, the cache needs to contain not only "real" data values but additional "index" values that list the keys (and possibly user-visible summaries) for "data" values. For example, in Gmail for mobile, the cache stores conversations as its "real" data values and lists of conversations (such as the Inbox in Gmail for Mobile) as its "index" values. Keys for index values are computed specially to record what subset of the complete index is cached locally. For example, in Gmail for Mobile, while a user's Inbox may contain thousands of conversations, the cache might contain an index entry whose data values lists metadata for only conversations 1000 through 1100. Consequently, Gmail for Mobile's cache extends keys with the cached range so that a request for metadata for conversations 1101 through1110 would be considered a cache miss.</div><h2 style="font-weight: bold;"><span style="font-size:130%;">Coherency and Refresh</span></h2><h2 style="font-weight: normal;"><span style="font-size:100%;">Perhaps the most complex aspect of the cache implementation is deciding how to get updated content from the server and how to merge server updates with changes made locally. A traditional hardware cache resolves this problem by only letting one processor modify its a cache at a time and have the memory broadcast any changes to all the other caches in the system. This approach cannot work here because the Gmail server can't connect to all of its clients and update their state. Instead, the approach we took for Gmail for Mobile was for the client device regularly poll the server for alterations.</span><span style="font-size:100%;"><br /></span></h2><span style="font-size:100%;">Polling the server for changes such as new email or the archiving of email by the same user from a different device implies a mechanism for merging local changes with server side changes. As mentioned above, Gmail for Mobile is a write-through cache. By keeping all of the modifications to the cache in a separate queue until they have been acknowledged, they can be played back against updates delivered from the server so that the cache contains the merge of changes from the server and the local user. The following diagram shows the basic idea:</span><br /><br /><br /><h3 class="post-title entry-title"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://docs.google.com/a/google.com/File?id=dd6mf42g_14c87z8jgv_b"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 574px; height: 363px;" src="https://docs.google.com/a/google.com/File?id=dd6mf42g_14c87z8jgv_b" alt="" border="0" /></a></h3> The green box in the diagram shows the contents of the cache's write buffer changing over time and the cloud corresponds to the requests in-flight to the server with time advancing from left to right in the diagram. The function names shown in the diagram are from the simplenotes.js<div> example file in the Web Storage Portability Layer distribution. Here, the user has applied some change [1] and the cache has written it to the write buffer and has then requested new content resulting in query [Q]. The cache prefixes the outstanding actions from the write buffer to the query. Action [1] is marked as needing a resend on some sort of network failure.<br /><br />Later, the user makes change [2] to the UI which causes the cache to append it to the write buffer in the applyUIChange call. Later still, another query is made and so, the cache sends [1][2][Q] to the server. In the mean time, the user makes yet another change [3]. This is written to the write buffer. Once changes [1] and [2] are acknowledged by the server along with the new cache contents for query [Q], changes [1] and [2] are removed from the write buffer. However, to keep the cache's state reflecting the user's changes, change [3] is applied (again) over top of the result for [Q].<br /><br />Simplifying the implementation of this reapplication stage is the most important benefit of implementing a write-through cache. By separating the changes from the state, it becomes much easier to reapply the changes to the cache once the server has delivered new content to the cache. As discussed in a <a id="j7d4" href="http://google-code-updates.blogspot.com/2009/06/gmail-for-mobile-html5-series.html" title="previous post" style="color: rgb(85, 26, 139);">previous post</a>, the use of SQL triggers can greatly improve database performance. Whether updating or re-updating, triggers are a great way to make the application of changes to the cache much more efficient.<br /><span style="font-size:130%;"><br /></span></div><div><span style="font-size:130%;"><span style="font-weight: bold;">Cached Content To the UI</span><br /><b><br /></b></span></div>The first of the four data flows is delivering content to the UI is reasonably easy: query the cache for the desired content and when the query completes, forward the request to the UI. If you look at the <span style="font-size:85%;"><span class="Apple-style-span"  style="font-family:'Courier New';">getNoteList_ </span></span><span style="font-family:Verdana,sans-serif;"><span style="font-size:85%;">function from the </span><a id="y0k0" href="http://code.google.com/p/webstorageportabilitylayer/source/browse/trunk/simplenotes/simplenotes.js" title="simplenotes.js">simplenotes.js</a><span style="font-size:85%;"> example code included in the WSPL distribution, you'll see that the delivering cached content to the UI has the following basic steps:</span></span><br /><div>perform hit determination: deciding if the requested cache contents are actually in the cache.</div><div><ul><li>create a database transaction, and while in the transaction</li><ul><li>query the database for the desired key</li><li>accumulate the results</li></ul><li>then outside of the transaction, return the result to the UI.</li></ul></div><div style="font-weight: bold;"><span style="font-size:130%;">Changes From The UI<br /><br /></span></div>The second flow (<span class="Apple-style-span"  style="font-family:'Courier New';">applyUiChange</span><span style="font-family:Verdana,sans-serif;">) is recording changes made by the user to the write buffer. It has a very similar structure</span><div><div><ul><li>create a database transaction, and while in the transacation</li><ul><li>write the change to the write buffer</li><li>wait for a trigger to update the state of the cache.</li></ul></ul></div></div><div><h2 style="font-weight: bold;"><span style="font-size:130%;">Updates Bound For The Server</span></h2><h2 style="font-weight: normal;"><span style="font-size:100%;">As discussed above, once the changes have been written to the write buffer, they still have to be sent to the server. This happens by prepending them to queries bound for the server. The </span><span class="Apple-style-span" style=";font-family:'Courier New';font-size:100%;"  >fetchFromServer </span><span style="font-size:100%;">from the example is responsible for this. As might be familiar by now, the flow is</span></h2></div><div><ul><li>create a database transaction and while in the transaction</li><ul><li>query the write buffer for all the entries that need to be sent to the server</li><li>accumulate the entries</li></ul><li>then outside the transaction, send the combination of changes and query to the server</li></ul></div><h2 style="font-weight: bold;"><span style="font-size:130%;">Changes From The Server</span></h2><h2 style="font-weight: normal;"><span style="font-size:100%;">Finally, we need to merge the changes from the server into the cache as is done in the </span><span class="Apple-style-span" style=";font-family:'Courier New';font-size:100%;"  >insertUpdate </span><span style="font-size:100%;">method from the example. Here the flow is as follows:</span></h2><div><ul><li>create a database transaction and while in the transaction</li><ul><li>update the directory</li><li>write the new content into the cache</li><li>touch the changes in the write buffer that need to be re-applied to the cache</li><li>wait for the trigger to complete its update</li></ul><li>then, outside of the transaction, send the response to the UI if it was satisfying a cache miss.</li></ul></div><div>That's a brief intro to the cache architecture as found in <span style="background-color: rgb(255, 255, 255);">Gmail for mobile</span>. We're continuing to improve our implementation of this basic architecture to improve both the performance and robustness <span style="background-color: rgb(255, 255, 255);">of Gmail for mobile</span>. Please stay tuned for follow on blog posts.</div><br /><i>Previous posts from Gmail for Mobile HTML5 Series</i><br /><i><a title="HTML5 and Webkit pave the way for mobile web applications" href="http://google-code-updates.blogspot.com/2009/04/html5-and-webkit-pave-way-for-mobile.html" id="e4x7">HTML5 and Webkit pave the way for mobile web applications</a><br /><a title="Using AppCache to launch offline - Part 1" href="http://google-code-updates.blogspot.com/2009/04/gmail-for-mobile-html5-series-using.html" id="ye:o">Using AppCache to launch offline - Part 1</a><br /><a title="Using AppCache to launch offline - Part 1" href="http://google-code-updates.blogspot.com/2009/05/gmail-for-mobile-html5-series-part-2.html" id="b52e">Using AppCache to launch offline - Part 2</a><br /><a title="Using AppCache to launch offline - Part 1" href="http://google-code-updates.blogspot.com/2009/05/gmail-for-mobile-html5-series-part-3.html" id="moyw">Using AppCache to launch offline - Part 3</a><br /><a id="vn-v" href="http://google-code-updates.blogspot.com/2009/05/gmail-for-mobile-html5-series-common.html" title="A Common API for Web Storage">A Common API for Web Storage</a><br /><a title="Suggestions for better performance" href="http://google-code-updates.blogspot.com/2009/06/gmail-for-mobile-html5-series.html" id="oi0j">Suggestions for better performance</a><br /></i><br /><span style="font-style: italic;" class="byline-author">By </span><span style="font-style: italic;">Robert Kroeger, Software Engineer, Google Mobile Team</span><span style="font-style: italic;" class="byline-author"></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-3312893399992003701?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/gmail-for-mobile-html5-series-cache-pattern-for-offline-html5-web-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AdSense for Mobile Applications Beta</title>
		<link>https://googledata.org/google-code/adsense-for-mobile-applications-beta/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adsense-for-mobile-applications-beta</link>
		<comments>https://googledata.org/google-code/adsense-for-mobile-applications-beta/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 01:33:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Are you developing free iPhone or Android applications? With our new beta product - AdSense for Mobile Applications, you can monetize your mobile applications by showing contextually targeted ads and/or placement targeted ads alongside your application...]]></description>
				<content:encoded><![CDATA[<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4E9RvKH2MuA/SkLUmjG6tFI/AAAAAAAALXg/FZgjGkE41jU/s1600-h/chcps79g_20dqbzphc2_b"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 267px; height: 400px;" src="http://1.bp.blogspot.com/_4E9RvKH2MuA/SkLUmjG6tFI/AAAAAAAALXg/FZgjGkE41jU/s400/chcps79g_20dqbzphc2_b" alt="" id="BLOGGER_PHOTO_ID_5351073065993942098" border="0" /></a>Are you developing free iPhone or Android applications? With our new beta product - <a href="http://www.google.com/ads/mobileapps/" id="yzjr" title="Ads for Mobile Applications">AdSense for Mobile Applications</a>, you can monetize your mobile applications by showing contextually targeted ads and/or placement targeted ads alongside your application content. We provide you with iPhone and Android SDKs and example applications that request and display <a href="http://www.google.com/adsense" id="g5e-" title="AdSense">AdSense</a> ads. Our SDKs also support <a href="http://www.doubleclick.net/" id="h7n8" title="DoubleClick">DoubleClick</a> ads.<br /><br />You can show 320x50 text and image ads linked to HTML webpages in your application. These ads are targeted to the keywords that you send us in the AdSense (or DoubleClick) ad request. The keywords must be relevant to your application content. If your application content is loaded from a webpage that is customized for iPhones and Android handsets, then you can also send us the webpage URL for us to target ads. The ads may also be placement targeted which means an advertiser can specifically target to your application.<p>Our iPhone SDK is compatible with iPhone OS 3.0, and our Android SDK is compatible with <a href="http://developer.android.com/" id="m2.u" title="Android 1.5 SDK">Android 1.5 SDK</a>. The SDKs include a library that can be linked in to your application which exposes methods to fetch and show ads. You must place a maximum of one ad per screen at the top or bottom (see the screenshot from the <a title="Backgrounds" href="http://www.stylem.com/iphone/" id="j6mg">Backgrounds</a> iPhone application). When a user clicks on the ad in your application, you can choose whether the user should view the advertiser's website in iPhone Safari or a full-screen UIWebView on the iPhone. For Android applications, our API defaults to opening the advertiser's website in the native browser.</p><p>To get started with monetizing your iPhone or Android application, sign up today on the <a href="http://www.google.com/ads/mobileapps/" id="dsui" title="Ads for Mobile Applications">AdSense for Mobile Applications website</a>. We can't wait to have you join our beta network!<br /></p><br /><span style="font-style: italic;" class="byline-author">By Jennifer Lin, Software Engineer, Google Mobile Team<br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-7689599774435164669?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/adsense-for-mobile-applications-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Introducing the Virtual Keyboard API</title>
		<link>https://googledata.org/google-code/introducing-the-virtual-keyboard-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-the-virtual-keyboard-api</link>
		<comments>https://googledata.org/google-code/introducing-the-virtual-keyboard-api/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 19:29:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ Inability to input text in native language has been a problem for many non-latin script based languages. This may happen for many reasons. Sometimes, users do not have the keyboard layout for their native language installed in the system they happen t...]]></description>
				<content:encoded><![CDATA[<div> Inability to input text in native language has been a problem for many non-latin script based languages. This may happen for many reasons. Sometimes, users do not have the keyboard layout for their native language installed in the system they happen to be using (for example, a tourist using an internet cafe in a foreign country). Sometimes, such a keyboard layout is not well developed or not widely available. It is worse for web developers because there is no way they can ensure that their users have access to this very basic input technology. </div> <div><br /></div><div>To address this issue, today, we added <a href="http://code.google.com/apis/ajaxlanguage/documentation/#Keyboard" id="h8oa" title="Virtual Keyboard API" style="color: rgb(85, 26, 139);">Virtual Keyboard API</a> into the <a href="http://code.google.com/apis/ajaxlanguage/" id="okla" title="Google AJAX Language API" style="color: rgb(85, 26, 139);">Google AJAX Language API</a>. With this API, developers can help their users to input text, regardless if they have the native keyboard layout installed in their Operating Systems or not. </div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_4E9RvKH2MuA/Sj_cI-wv8_I/AAAAAAAALWo/7QJ7DvCajRo/s1600-h/chpnnjdg_0gcv4bxdk_b"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 177px;" src="http://4.bp.blogspot.com/_4E9RvKH2MuA/Sj_cI-wv8_I/AAAAAAAALWo/7QJ7DvCajRo/s400/chpnnjdg_0gcv4bxdk_b" alt="" id="BLOGGER_PHOTO_ID_5350236929183970290" border="0" /></a><br /><div>  </div>   <b>Pic 1: Russian Virtual Keyboard layout</b><div><div id="mb4b" style="text-align: left;">   </div> </div> <div><br /></div> <div> Another advantage is the ability to provide a better user experience for multilingual web sites. For example, on a Russian/Thai bilingual dictionary editing web site, users would type in Russian in the header, and then see a Thai description. With the Virtual keyboard API, developers can load a Russian virtual keyboard layout and bind with all the Russian text fields, and load a Thai virtual keyboard layout and bind them to Thai fields. The Virtual Keyboard API then will automatically swap to the corresponding keyboard layout depending upon the user action.  </div> <div><br /></div> <div> Sometimes users may not be familiar with the key assignment of their keyboard layout. Virtual keyboard also shows the key assignment inside the page to allow users to input text by either pressing key or by clicking mouse on the virtual onscreen layout.  </div> <div><br /></div> <div>   With this initial release, we are launching 5 language layouts. These are: Arabic, Hindi, Polish, Russian, and Thai.</div><div><br /></div> <div>   We plan to roll out support for more keyboard layouts in the future.  You can find more details by reading through the <a href="http://code.google.com/apis/ajaxlanguage/documentation/referenceKeyboard.html" id="j4cg" title="class reference">class reference</a> and trying the <a href="http://code.google.com/apis/ajax/playground/#virtual_keyboard" id="gj1i" title="Code Playground samples">Code Playground samples</a>. Feedback is always welcome in our <a href="http://groups.google.com/group/Google-AJAX-Search-API" id="d8z9" title="support forum">support forum</a> and <a href="http://www.mibbit.com/?server=irc.freenode.net&amp;channel=%23googleajaxapis" id="m0_:" title="IRC channel">IRC channel</a>. </div><br /><span style="font-style: italic;" class="byline-author">By Manish Bhargava and Frank Tang, Google Internationalization Team<br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-8662068026547878841?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/introducing-the-virtual-keyboard-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Google Technology User Groups</title>
		<link>https://googledata.org/google-code/google-technology-user-groups/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-technology-user-groups</link>
		<comments>https://googledata.org/google-code/google-technology-user-groups/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 00:11:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[My favorite part about Google I/O is the dozens of interesting conversations with developers -- getting a first-hand look at the different things that they are doing with our technologies. That's the spirit of the Google Technology User Groups -- regul...]]></description>
				<content:encoded><![CDATA[<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_4E9RvKH2MuA/SjGgIqOlZzI/AAAAAAAALTg/JEfjesiSl-k/s1600-h/gtug2-175.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 175px; height: 71px;" src="http://3.bp.blogspot.com/_4E9RvKH2MuA/SjGgIqOlZzI/AAAAAAAALTg/JEfjesiSl-k/s400/gtug2-175.png" alt="" id="BLOGGER_PHOTO_ID_5346230303300347698" border="0" /></a>My favorite part about Google I/O is the dozens of interesting conversations with developers -- getting a first-hand look at the different things that they are doing with our technologies. That's the spirit of the <a title="Google Technology User Groups" href="http://www.gtugs.org/" id="g3.s">Google Technology User Groups</a> -- regular meetups where local developers can get together to network and discuss, demo, and hack on Google's many developer offerings.<br /><br />From <a title="lightning talks" href="http://picasaweb.google.com/sv.gtug/SVGTUGApr2009#" id="iorh">lightning talks</a> in Mountain View, to <a title="App Engine hackathons" href="http://picasaweb.google.com/matsuo.takashi/GaeHackAThonTokyo3rd#5323536050026197938" id="vv7q">App Engine hackathons</a> in Tokyo, to <a title="techno-parties" href="http://www.youtube.com/watch?v=95NQMwMPY6k" id="sipv">lectures</a> in Berlin, the GTUGs are a great place to meet fellow developers and learn (or teach) something new.<br /><br />At <a title="Google I/O" href="http://code.google.com/events/io" id="ozy8">Google I/O</a>, there were many folks eager to bring the spirit of the conference back to their hometowns by starting up GTUGs of their own. Since the conference ended, our list of current GTUGs has grown to include this 'baby boomer' generation of chapters. The following are all new groups looking for members and starting to set up their first events.<br /><br />If there's one near you, check it out! Let the organizers know you're interested; suggest topics for discussion and even offer to do a talk about your own experiences.<br /><b><br />Europe</b><br />Paris GTUG - <a href="http://groups.google.com/group/paris-gtug" >http://groups.google.com/group/paris-gtug</a><br />Hamburg GTUG - <a href="http://www.hamburg-gtug.org/" >http://www.hamburg-gtug.org</a><br />GTUG Munich - <a href="http://gtug-muc.org/" >http://gtug-muc.org</a><br />Istanbul GTUG - <a href="http://www.istanbul-gtug.org/" >http://www.istanbul-gtug.org/</a><br />Polish GTUG - <a href="http://www.gtug.pl/" >http://www.gtug.pl</a><br /><b><br />North America</b><br />Tri-Valley California GTUG - <a href="http://groups.google.com/group/tv-gtug" >http://groups.google.com/group/tv-gtug</a><br />Berkeley GTUG - <a href="http://www.meetup.com/Berkeley-GTUG/" >http://www.meetup.com/Berkeley-GTUG/</a><br />San Diego GTUG - <a href="http://www.meetup.com/sd-gtug/" >http://www.meetup.com/sd-gtug/</a><br />NYC GTUG - <a href="http://sites.google.com/site/nycgtug" >http://sites.google.com/site/nycgtug</a><br />New Jersey GTUG - <a href="http://nj-gtug.org/" >http://nj-gtug.org/</a><br />Philly/Delaware GTUG - <a href="http://sites.google.com/site/phillygtug/" >http://sites.google.com/site/phillygtug/</a><br />Boston GTUG - <a href="http://groups.google.com/group/boston-gtug" >http://groups.google.com/group/boston-gtug</a><br />Denver GTUG - <a href="http://groups.google.com/group/denver-gtug" >http://groups.google.com/group/denver-gtug</a><br />Twin Cities GTUG - <a href="http://tc-gtug.org/" >tc-gtug.org</a><br />Austin GTUG - <a href="http://sites.google.com/site/austingtug/" >http://sites.google.com/site/austingtug/</a><br />Michigan GTUG - <a href="http://groups.google.com/group/mi-gtug" >http://groups.google.com/group/mi-gtug</a><br /><div>MadGTUG - <a href="http://madgtug.org/" >http://madgtug.org</a><br />Cleveland GTUG - <a href="http://groups.google.com/group/cleveland-gtug" >http://groups.google.com/group/cleveland-gtug</a><br /></div>Utah GTUG - <a href="http://utahgtug.blogspot.com/" >http://utahgtug.blogspot.com/</a><br />Laguna GTUG - <a href="http://www.laguna-gtug.org/" >www.laguna-gtug.org</a><br />Quebec GTUG - <a href="http://groups.google.com/group/gtug-quebec/?pli=1" >http://groups.google.com/group/gtug-quebec/?pli=1</a><br /><br /><b>South America</b><br />Chile GTUG - <a href="http://groups.google.com/group/gtug-cl" >http://groups.google.com/group/gtug-cl</a><br />Argentina GTUG - <a href="http://groups.google.com/group/gtug-ar" >http://groups.google.com/group/gtug-ar</a><br /><br /><b>Asia</b><br />Kuala Lumpur GTUG - <a href="http://sites.google.com/site/gtugkl/" >http://sites.google.com/site/gtugkl/</a><br />Hyderabad GTUG - <a href="http://sites.google.com/site/hydgtug/" >http://sites.google.com/site/hydgtug/</a><br /><br />Also a big shout-out to our existing chapters:<br /><br />Silicon Valley GTUG - <a href="http://www.meetup.com/sv-gtug" >http://www.meetup.com/sv-gtug</a> (watch the organizers, Kevin and Van, talk about <a title="GTUGs at Google I/O" href="http://www.youtube.com/watch?v=1RnyyE3RN3k" id="ds_4">GTUGs at Google I/O</a>)<br />Pune GTUG - <a  href="http://pune-gtug.blogspot.com/">http://pune-gtug.blogspot.com/</a><br />Chico GTUG <span style="color: rgb(51, 51, 51);font-family:sans-serif;" ><a href="http://www.berlin-gtug.org/" style="color: rgb(51, 51, 51);" >http://www.chico-gtug.org</a></span><br />Berlin GTUG - <a href="http://www.berlin-gtug.org/" >http://www.berlin-gtug.org</a><br />Tokyo GTUG - <a title="http://tokyo-gtug.org/" href="http://tokyo-gtug.org/" id="bup.">http://tokyo-gtug.org/</a><br /><br /><iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=118171940392379715704.000462958bd7dc39033c4&amp;ll=9.208762,8.711572&amp;spn=88.693281,-98.039732&amp;z=1&amp;output=embed" scrolling="no" frameborder="0" height="350" width="425"></iframe><br /><small>View <a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=118171940392379715704.000462958bd7dc39033c4&amp;ll=9.208762,8.711572&amp;spn=88.693281,-98.039732&amp;z=1&amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;">GTUGs</a> in a larger map</small><br /><br />Don't see a chapter near you? Start one! Join our <a title="GTUG managers mailing list" href="http://groups.google.com/group/gtug-managers" id="cy5m">GTUG managers mailing list</a>. Other info at <a href="http://gtugs.org/">gtugs.org</a>.<br /><br /><span style="font-style: italic;" class="byline-author">By Stephanie Liu, Google Developer Programs</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-5462972168190260889?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/google-technology-user-groups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Mercurial Now Available to All Open Source Projects</title>
		<link>https://googledata.org/google-code/mercurial-now-available-to-all-open-source-projects/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mercurial-now-available-to-all-open-source-projects</link>
		<comments>https://googledata.org/google-code/mercurial-now-available-to-all-open-source-projects/#comments</comments>
		<pubDate>Thu, 28 May 2009 19:24:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[About a month ago we announced Mercurial support for early testers. Today, we are happy to announce that all Project Hosting users can create a new Mercurial project and convert their existing projects from Subversion to Mercurial. We also want...]]></description>
				<content:encoded><![CDATA[About a month ago we announced <a title="support" href="http://google-code-updates.blogspot.com/2009/04/mercurial-support-for-project-hosting.html" id="pjnz">Mercurial support</a> for early testers. Today, we are happy to announce that all <a title="Project Hosting" href="http://code.google.com/projecthosting" id="x78w">Project Hosting</a> users can <a title="create a new Mercurial project" href="http://code.google.com/p/support/wiki/GettingStarted#Creating_a_Project" id="l15:">create a new Mercurial project</a> and <a title="convert their project from Subversion to Mercurial" href="http://code.google.com/p/support/wiki/ConvertingSvnToHg" id="h6el">convert their existing projects from Subversion to Mercurial</a>. <br /><br />We also want to thank the projects that helped us test support for Mercurial. Projects like <a title="Clojure-Dev" href="http://code.google.com/p/clojure-dev/source/list" id="aile">Clojure-Dev</a> and <a title="Spice of Creation" href="http://code.google.com/p/soc/source/list" id="vvw5">Spice of Creation</a> helped us discover new usage patterns and fix several unforeseen issues. Unlike our mature Subversion implementation, there are still a few issues/features that we are working on. <br /><br />We therefore encourage everyone to be familiar with what is <a title="supported" href="http://code.google.com/p/support/wiki/MercurialStatus" id="f3qu">supported</a> before picking Mercurial.<br /><br />Please let us know if you have any <a title="feedback" href="http://groups.google.com/group/google-code-hosting" id="vy7h">feedback</a> or find any <a title="issues" href="http://code.google.com/p/support/issues" id="kqin">issues</a>. If you're coming to <a href="http://code.google.com/events/io/">Google I/O</a>, be sure to come meet us in person and hear our talk about <a href="http://code.google.com/events/io/sessions/MercurialBigTable.html">Mercurial on Bigtable</a> this Thursday at 3:45pm-4:45pm in Moscone West - Room 5. We have Mercurial SWAG!<br /><br /><font style="font-style: italic;" class="byline-author">By Ali Pasha, Google Code Team</font><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-7626099531414876346?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/mercurial-now-available-to-all-open-source-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mercurial support for Project Hosting on Google Code</title>
		<link>https://googledata.org/google-code/mercurial-support-for-project-hosting-on-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mercurial-support-for-project-hosting-on-google-code</link>
		<comments>https://googledata.org/google-code/mercurial-support-for-project-hosting-on-google-code/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 16:02:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[We are happy to announce that Project Hosting on Google Code now supports the Mercurial version control system in addition to Subversion. This is being initially rolled out as a preview release to a few invited users on a per-project basis, so that we ...]]></description>
				<content:encoded><![CDATA[We are happy to announce that Project Hosting on Google Code now supports the <a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a> version control system in addition to <a href="http://subversion.tigris.org/">Subversion</a>. This is being initially rolled out as a preview release to a few invited users on a per-project basis, so that we can iron out the <a href="http://code.google.com/p/support/wiki/MercurialStatus">kinks</a> before making this available to the general public.<br /><br /><a href="http://code.google.com/p/android-health-tracker"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 313px; height: 246px;" src="http://3.bp.blogspot.com/_4E9RvKH2MuA/SfH0hKPrq8I/AAAAAAAALIA/3-6Bj6qhXec/s400/erratic2.png" alt="" id="BLOGGER_PHOTO_ID_5328308684678998978" border="0" /></a><br /><a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a>, like <a href="http://git-scm.com/">Git</a> and <a href="http://bazaar-vcs.org/">Bazaar</a>, is a distributed version control system (DVCS) that enables developers to work offline and define more complex workflows such as peer-to-peer pushing/pulling of code. It also makes it easier for outside contributors to contribute to projects, as <a href="http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart#head-30b4ac18bf130819c523f9e3d727a3dc4e9ea880">cloning and merging</a> of remote repositories is really easy.<br /><br />While there were several DVCSs that we could support, our decision to support Mercurial was based on two key reasons. The primary reason was to support our large base of existing Subversion users that want to use a distributed version control system. For these users we felt that Mercurial had the lowest barrier to adoption because of its similar command set, great documentation (including a <a href="http://hgbook.red-bean.com/">great online book</a>), and excellent tools such as <a href="http://bitbucket.org/tortoisehg/stable/wiki/FAQ#what-is-tortoisehg">Tortoise Hg</a>. Second, given that Google Code's infrastructure is built for HTTP-based services, we found that Mercurial had the best protocol and performance characteristics for HTTP support. For more information, see our <a href="http://code.google.com/p/support/wiki/DVCSAnalysis">analysis</a>.<br /><br />If you would like to help us launch Mercurial and to try out the features as an invited user, please fill out the following <a href="http://spreadsheets.google.com/viewform?hl=en&amp;formkey=cEJnWHctQjRjV3hyNkRCb3RzbzY4RFE6MA..">form</a>. We are currently looking for active projects with more than two users that are willing to try out Mercurial and work with us to identify issues and resolve them. For projects that plan on migrating from Subversion, see our <a href="http://code.google.com/p/support/wiki/ConvertingSvnToHg">conversion docs</a> for the steps required for this process.<br /><br />Our implementation of Mercurial is built on top of <a href="http://labs.google.com/papers/bigtable-osdi06.pdf">Bigtable</a>, making it extremely scalable and reliable just like our Subversion on Bigtable implementation. For more information on our Mercurial implementation, we will have a <a href="http://code.google.com/events/io/sessions.html">TechTalk at Google IO</a> that will be led by Jacob Lee, one of the core engineers working on Mercurial support. Let us know if you <a href="http://spreadsheets.google.com/viewform?formkey=cEJnWHctQjRjV3hyYTFEZEtCTXBRSHc6MA..">plan on attending</a> and we'll give you access to Mercurial ahead of the talk.<br /><br /><span style="font-style: italic;" class="byline-author">By David Baum, Software Engineer<br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-1600705845755273034?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/mercurial-support-for-project-hosting-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Logos for Open Source Projects</title>
		<link>https://googledata.org/google-code/custom-logos-for-open-source-projects/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=custom-logos-for-open-source-projects</link>
		<comments>https://googledata.org/google-code/custom-logos-for-open-source-projects/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 00:50:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Open source projects now have customizable logos!  You can use this to maintain consistency with your other websites or just for fun.  Here's an example of a project with its own logo. To update the logo on your project, click on the Administer tab (as...]]></description>
				<content:encoded><![CDATA[<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EuCTzLdp3vE/ScwawSQhR8I/AAAAAAAACYw/v0JKf-dJSn0/s1600-h/defaultlogo.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 48px; height: 48px;" src="http://1.bp.blogspot.com/_EuCTzLdp3vE/ScwawSQhR8I/AAAAAAAACYw/v0JKf-dJSn0/s400/defaultlogo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5317654676854884290" /></a>Open source projects now have customizable logos!  You can use this to maintain consistency with your other websites or just for fun.  Here's an example of <a href="http://code.google.com/p/twisty" >a project with its own logo</a>. To update the logo on your project, click on the Administer tab (as long as you're a project owner) and upload an image.  It will automatically be resized. You can switch back the default logo or upload a new logo at any point.<br /><br />Google projects such as <a href="http://code.google.com/p/chromium/">Chromium</a> will retain the large Google logo.<br /><br />For other notable changes, see our <a href="http://groups.google.com/group/google-code-hosting/browse_thread/thread/9fb0ecc6b7c1f5f6">groups post</a>.<br /><br /><font style="font-style: italic;" class="byline-author">By Andy Chu, Software Engineer, Google Code</font><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-9057908684116403400?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/custom-logos-for-open-source-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Staying up to date with Google Code</title>
		<link>https://googledata.org/google-code/staying-up-to-date-with-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=staying-up-to-date-with-google-code</link>
		<comments>https://googledata.org/google-code/staying-up-to-date-with-google-code/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 19:45:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Ali Pasha &#38; Jacob Moon, Google CodeAs the number of developers and projects have grown on Google Code, we've started thinking about how to get projects to learn from and work with each other. Today, we're happy to announce that we have made a fe...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Ali Pasha &amp; Jacob Moon, Google Code</span><br /><br />As the number of developers and projects have grown on Google Code, we've started thinking about how to get projects to learn from and work with each other. Today, we're happy to announce that we have made a few steps towards that goal.<br /><br />First, we've added user update streams to make it easy to see what a particular user has been doing across Project hosting on Google Code. As an example, take a look at <a href="http://code.google.com/u/sussman/updates">Ben Collins-Sussman's</a> activities on his profile page. Ben works on Google Code, but it's obvious that he has other interests as well.<br /><br />In addition, tracking open source projects and other developers is as easy as starring a project or a developer profile. Starring a project or developer adds a link in your new  "Starred Projects" and "Starred Developers" section of your profile page, making it really easy to find those projects or developers again. Starred projects are also added to the new "My projects" drop-down, which makes it easy to navigate to a project from anywhere on the site.<br /><br />Once a project or a developer is starred, all updates from starred projects and developers can be tracked by looking at your personalized updates.<br /><div id="ew4v" style="padding: 1em 0pt; text-align: left;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4E9RvKH2MuA/SYyQfnLEUyI/AAAAAAAAK9w/JvA89ILbVgI/s1600-h/Updates.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 258px;" src="http://1.bp.blogspot.com/_4E9RvKH2MuA/SYyQfnLEUyI/AAAAAAAAK9w/JvA89ILbVgI/s400/Updates.png" alt="" id="BLOGGER_PHOTO_ID_5299769734273979170" border="0" /></a></div>For those that prefer to use their feed reader, use the following new feeds:<ul><li>Updates for a user - http://code.google.com/feeds/u/{username}/updates/user/basic</li><li>Developers a user is tracking - http://code.google.com/feeds/u/{username}/updates/projects/basic</li><li>Projects a user is tracking - http://code.google.com/feeds/u/{username}/updates/developers/basic</li></ul> As always, we look forward to your <a href="http://code.google.com/p/support">feedback</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-2503757858369639279?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/staying-up-to-date-with-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post-Commit Web Hooks for Google Code Project Hosting</title>
		<link>https://googledata.org/google-code/post-commit-web-hooks-for-google-code-project-hosting/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=post-commit-web-hooks-for-google-code-project-hosting</link>
		<comments>https://googledata.org/google-code/post-commit-web-hooks-for-google-code-project-hosting/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 23:14:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Mike Parent, Google CodeWe love to create building blocks that fuel user's imaginations. Today we are announcing Post-Commit Web Hooks for Project Hosting on Google Code, to allow web services to receive repository commit notifications. Projects can...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Mike Parent, Google Code</span><br /><br /><span class="Apple-style-span" style=";font-family:Verdana;font-size:13;"  ><span class="byline-author">We love to create building blocks that fuel user's imaginations. Today we are announcing </span><span class="byline-author"><a href="http://code.google.com/p/support/wiki/PostCommitWebHooks">Post-Commit Web Hooks</a> <span style="font-family:arial;">for Project Hosting on Google Code, to </span>allow web services to receive repository commit notifications. Projects can use this feature to integrate with all kinds of external tools, including continuous build systems, bug trackers, project metrics, and social networks. The notification follows the </span><span class="byline-author"><a href="http://webhooks.pbwiki.com/" id="th_i" title="WebHooks">Web Hooks</a> model, and is delivered as an HTTP POST request containing a <a href="http://www.json.org/" id="dwrh" title="JSON" style="color: rgb(85, 26, 139);">JSON</a> commit description.<br /><br />To help get you started, we've created an <a href="http://contenthooks.appspot.com/" id="vmqd" title="sample application" style="color: rgb(85, 26, 139);">example application</a> that performs various tests that are useful for managing documentation. You can find the source code in the <a href="http://code.google.com/p/contenthooks/" id="xb2-" title="contenthooks" style="color: rgb(85, 26, 139);">contenthooks</a> open source project.<br /></span><span class="byline-author"><br />We would love to hear feedback about new and interesting uses of <a href="http://code.google.com/p/support/wiki/PostCommitWebHooks">Post-Commit Web Hooks</a>!</span></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-7863674575441741135?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/post-commit-web-hooks-for-google-code-project-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Visualization API interactive samples in the AJAX APIs Playground</title>
		<link>https://googledata.org/google-code/google-visualization-api-interactive-samples-in-the-ajax-apis-playground/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-visualization-api-interactive-samples-in-the-ajax-apis-playground</link>
		<comments>https://googledata.org/google-code/google-visualization-api-interactive-samples-in-the-ajax-apis-playground/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 18:19:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Nir Bar-Lev, Google Developer ProgramsWe all know that writing code based on existing code snippets is faster and quicker than starting from scratch. It's also a great way to ramp up on new tools or APIs you may be less familiar with.That's way we d...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Nir Bar-Lev, Google Developer Programs</span><span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "><br /><br />We all know that writing code based on existing code snippets is faster and quicker than starting from scratch. It's also a great way to ramp up on new tools or APIs you may be less familiar with.<br /><br />That's way we decided to provide a whole bunch of <a title="interactive code samples" href="http://code.google.com/apis/ajax/playground/?type=visualization" id="wfo6">interactive code samples</a> for the <a title="Google Visualization API" href="http://code.google.com/apis/visualization/" id="rewl">Google Visualization API</a> in Google's recently launched <a title="AJAX APIs Playground" href="http://code.google.com/apis/ajax/playground/?type=visualization" id="vy6z">AJAX APIs Playground</a>.<br /><br />These code samples run the gamut from specific visualizations like for the <a title="Motion Chart" href="http://code.google.com/apis/ajax/playground/?type=visualization#motion_chart" id="y6g.">Motion Chart</a>, <a title="Annotated Time Line" href="http://code.google.com/apis/ajax/playground/?type=visualization#annotated_time_line" id="zyh8">Annotated Time Line</a> (used in Google Finance) or <a title="Geo Map" href="http://code.google.com/apis/ajax/playground/?type=visualization#geo_map" id="tpgc">Geo Map</a> to covering specific Visualization API topics like <a title="event handling" href="http://code.google.com/apis/ajax/playground/?type=visualization#interaction_using_events" id="yqes">event handling</a> and placing <a title="data source requests" href="http://code.google.com/apis/ajax/playground/?type=visualization#data_source_request" id="tpkd">data source requests</a>.<br /><br />The Playground enables you to change the sample code, re-run it, and see the results in real time. You can export your code, save it, and also get a full HTML source. In fact, for most of your programming needs, this tool is all you'll ever need to write, debug and integrate visualizations from the Visualization API into your web pages.<br /><br />We hope you enjoy the added productivity and wish you happy visualizing!<br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-202445203336910223?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/google-visualization-api-interactive-samples-in-the-ajax-apis-playground/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing around with Google&#8217;s AJAX APIs</title>
		<link>https://googledata.org/google-code/playing-around-with-googles-ajax-apis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=playing-around-with-googles-ajax-apis</link>
		<comments>https://googledata.org/google-code/playing-around-with-googles-ajax-apis/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 02:01:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Ben Lisbakken, Developer Programs EngineerFor me, documentation isn't always enough to learn about APIs; I need examples that I can play with. That's why I started a fun project recently--a tool for teaching developers how to use Google's JavaScript...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Ben Lisbakken, Developer Programs Engineer</span><br /><br /><span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; ">For me, documentation isn't always enough to learn about APIs; I need examples that I can play with. That's why I started a fun project recently--a tool for teaching developers how to use Google's JavaScript APIs: the <a href="http://code.google.com/apis/ajax/playground/" style="color: rgb(85, 26, 139); ">AJAX API Playground</a>. I have been working on this in my 20% time and today I am proud to announce that we are launching the AJAX API Playground as the official way that Google will show JavaScript samples!<br /><div id="onh2" style="padding-top: 1em; padding-right: 0pt; padding-bottom: 1em; padding-left: 0pt; text-align: left; margin-top: 0px; margin-bottom: 0px; "><div id="wc9u" style="padding-top: 1em; padding-right: 0pt; padding-bottom: 1em; padding-left: 0pt; text-align: left; margin-top: 0px; margin-bottom: 0px; "><img src="https://docs.google.com/a/google.com/File?id=d4qn6v2_4f9w5wbc6_b" style="width: 360px; height: 229px; " /></div></div>The AJAX API Playground is currently loaded with over 170 samples for 8 Google JavaScript APIs (Maps, Search, Feeds, Calendar, Visualization, Language, Blogger, Libraries and Earth) that you can edit and run to help you explore what Google's APIs have to offer. There are also save and export features. The save feature allows you to hold onto an edited sample so you can continue working on it later, while export lets you modify a sample and publish the code to a permanent url.<br /><br />As the AJAX API Playground is built on <a href="http://code.google.com/appengine/" style="color: rgb(85, 26, 139); ">App Engine</a>, you can create your own App Engine instance to show off your code samples. The code is open sourced under an Apache 2.0 license and uses several open source libraries and tools, including <a href="http://jquery.com/">jQuery</a>, <a href="http://ui.jquery.com/">jQuery UI</a>, <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a>, and <a href="http://marijn.haverbeke.nl/codemirror/">CodeMirror</a>. You can find the code on <a href="http://code.google.com/p/google-ajax-examples/source/browse/#svn/trunk/interactive_samples">Google Project Hosting</a> and learn about adding samples on the <a href="http://code.google.com/p/google-ajax-examples/wiki/AddSamplesToInteractiveSampler">project wiki</a>.<br /><br />Stay tuned for more samples for more APIs. Enjoy!</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-1912259654718936650?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/playing-around-with-googles-ajax-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy holidays from Google Code!</title>
		<link>https://googledata.org/google-code/happy-holidays-from-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=happy-holidays-from-google-code</link>
		<comments>https://googledata.org/google-code/happy-holidays-from-google-code/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 18:37:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Matt Hansen, Google Developer ProgramsAt Google Code, we are getting into the holiday spirit early. To thank open source developers for their support, I'm happy to announce that we are giving every project on Google Code a whole lot more quota!We're...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By </span><span style="font-style: italic;">Matt Hansen</span><span style="font-style: italic;" class="byline-author">, Google Developer Programs</span><br /><br /><div>At Google Code, we are getting into the holiday spirit early. To thank open source developers for their support, I'm happy to announce that we are giving every project on Google Code a whole lot more quota!<br /><br /></div><div>We're increasing the maximum file sizes from 20MB to 40MB, Subversion quotas from 100MB to 1GB, and download quotas from 100MB to 2GB.</div> <div> <div id="lzhs" style="padding: 1em 0pt; text-align: left;"><img style="width: 128px; height: 128px;" src="https://docs.google.com/a/google.com/File?id=cdfsxfw_629fqqkp3f7_b" /></div> </div><div>Happy holidays! </div> <div><br /></div><div>P.S. If you need more space, <a title="let us know" href="http://groups.google.com/group/google-code-hosting" id="b0:s">let us know</a>!<br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-5247023222354296774?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/happy-holidays-from-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Increased code search coverage, now with Git and Mercurial support</title>
		<link>https://googledata.org/google-code/increased-code-search-coverage-now-with-git-and-mercurial-support/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=increased-code-search-coverage-now-with-git-and-mercurial-support</link>
		<comments>https://googledata.org/google-code/increased-code-search-coverage-now-with-git-and-mercurial-support/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 18:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By  Ali Pasha, Google Code SearchAt Google Code search, we've seen distributed version control systems get more popular. Linux has been using one for several years and several large open source projects have migrated to using one in the last few years....]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By </span> Ali Pasha<span style="font-style: italic;" class="byline-author">, Google Code Search</span><br /><br />At Google Code search, we've seen <a href="http://en.wikipedia.org/wiki/Distributed_revision_control" id="u6us" title="distributed version control systems">distributed version control systems</a> get more popular. Linux has been using one for several years and several large open source projects have migrated to using one in the last few years. In recognition of that, we are now announcing that we crawl Git and Mercurial repositories.  <br /><br />For Git, we now crawl repositories hosted by several public git hosting sites including <a href="http://github.com/" id="yhv:" title="GitHub">GitHub</a> and <a href="http://repo.or.cz/" id="k2.d" title="repo.or.cz">repo.or.cz</a>. In addition to that, we also crawl <a href="http://www.android.com/" id="rjkk" title="Android">Android</a>, <a title="http://code.google.com/chromium/" href="http://code.google.com/chromium/" id="kr-s">Chromium</a>  and <a href="http://linux.org/" id="lcad" title="Linux">Linux</a> code.    <div>  <div>  <ul><li>  Github.com: <a title="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=ruby+package:github.com&amp;sbtn=Search" href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=ruby+package:github.com&amp;sbtn=Search">ruby package:github.com</a>  </li><li>  Android: <a title="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=AbsListView+package:android&amp;sbtn=Search" href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=AbsListView+package:android&amp;sbtn=Search">AbsListView package:android</a>  </li><li>  Linux:<a href="http://www.google.com/codesearch?q=package:kernel.org&amp;hl=en&amp;btnG=Search+Code"> </a><a title="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=FD_CLR+package:/git.kernel.org&amp;sbtn=Search" href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=FD_CLR+package:/git.kernel.org&amp;sbtn=Search">FD_CLR package:/git.kernel.org</a></li><li>Chromium: <a title="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=MessageLoop+package%3Achromium.org&amp;sbtn=Search"  href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=MessageLoop+package%3Achromium.org&amp;sbtn=Search" id="wx3n">MessageLoop package:chromium.org</a><br /></li></ul>  For Mercurial repositories, we now crawl most popular open source repositories including Mozilla, JDK, and NetBeans.<br /><ul><li> Mozilla: <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=class:nsCOMArrayEnumerator+package:hg.mozilla.org&amp;sbtn=Search">class:nsCOMArrayEnumerator package:hg.mozilla.org</a></li><li> JDK: <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=java.util.concurrent+package:hg.openjdk.java.net&amp;sbtn=Search">java.util.concurrent package:hg.openjdk.java.net</a></li><li> NetBeans: <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=javax.swing.JFrame+package:netbeans.org&amp;sbtn=Search">javax.swing.JFrame package:netbeans.org</a><br /></li></ul> </div>  <div>Finally, we have also extended coverage to support Codeplex: <a title="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=System.ServiceModel+package:codeplex.com"  href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=System.ServiceModel+package:codeplex.com">System.ServiceModel package:codeplex.com</a></div>    </div>  <div> <br /> </div>  Feel free to provide <a href="http://groups.google.com/group/Google-Code-Search" id="q169" title="feedback">feedback</a> to let us know how we're doing.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-3729074352980663501?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/increased-code-search-coverage-now-with-git-and-mercurial-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salesforce.com announces Force.com for App Engine</title>
		<link>https://googledata.org/google-code/salesforce-com-announces-force-com-for-app-engine/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-com-announces-force-com-for-app-engine</link>
		<comments>https://googledata.org/google-code/salesforce-com-announces-force-com-for-app-engine/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 18:41:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Ali Pasha, Google CodeThis morning Salesforce.com announced Force.com for Google App Engine, a Python library for apps running on App Engine that enables simple and robust access to the Force.com Web services API.  Using this library, App Engine dev...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Ali Pasha, Google Code</span><br /><br />This morning <a href="http://googleappengine.blogspot.com/2008/12/salesforcecom-announces-forcecom-for.html">Salesforce.com announced Force.com for Google App Engine</a>, a Python library for apps running on App Engine that enables simple and robust access to the Force.com Web services API.  Using this library, App Engine developers can now build and deploy scalable web apps that manipulate and display data stored on Force.com. App Engine developers interested in building enterprise-class applications can now build anything from browser-based tools for members of your organization to personalized, customer-focused apps that scale to meet demand.<br /><br />To learn more about Force.com, you can visit the <a href="http://developer.force.com/appengine">Force.com</a> documentation.  To learn more about App Engine, <a href="http://code.google.com/appengine">check out our docs</a> or visit the <a href="http://groups.google.com/group/google-appengine">App Engine Google Group</a>!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-240001933370263930?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/salesforce-com-announces-force-com-for-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding some style to the wiki on Google Code</title>
		<link>https://googledata.org/google-code/adding-some-style-to-the-wiki-on-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adding-some-style-to-the-wiki-on-google-code</link>
		<comments>https://googledata.org/google-code/adding-some-style-to-the-wiki-on-google-code/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 20:02:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Nathan Ingersoll and Jason Robbins, Google CodeBased on user feedback, we added a few highly requested features to the project hosting wiki on Google Code.To improve navigation from one wiki page to another, we added side navigation across wiki page...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Nathan Ingersoll and Jason Robbins, Google Code</span><br /><br />Based on user feedback, we added a few highly requested features to the project hosting wiki on Google Code.<br /><br />To improve navigation from one wiki page to another, we added <a href="http://code.google.com/p/support/wiki/WikiSyntax#Side_navigation">side navigation</a> across wiki pages (e.g <a title="side navigation" href="http://code.google.com/p/doctype/wiki/ArticlesXSS" id="ticr">doctype docs</a>). You can add a 'Wiki sidebar' by specifying the wiki file that describes your side navigation in the Administration tab under Wiki settings.<br /><div id="g1h3" style="padding: 1em 0pt; text-align: left;"><img style="width: 530px; height: 198px;" src="https://docs.google.com/a/google.com/File?id=cdfsxfw_597xcrv79ct_b" /></div>To help navigate a wiki page, we added the ability to add a generated table of contents. To add a table of contents, just copy the following syntax to your wiki page.<br /><pre class="prettyprint"><a name="Table_of_Contents"><span class="pun"><</span><span class="tag">wiki:toc</span><span class="pln"> </span><span class="atn">max_depth</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln"> </span><span class="pun">/></span></a></pre>Finally, to improve the style of your wiki pages we have added some html support. For more information on what html is supported, take a look at the <a title="html documentation" href="http://code.google.com/p/support/wiki/WikiSyntax#HTML_support" id="w1wc">documentation</a>.<br /><br />As always, we look forward to your <a title="feedback" href="http://code.google.com/p/support/issues/" id="vcdz">feedback</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-2444998616702094607?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/adding-some-style-to-the-wiki-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving the issue tracker for larger projects</title>
		<link>https://googledata.org/google-code/improving-the-issue-tracker-for-larger-projects/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=improving-the-issue-tracker-for-larger-projects</link>
		<comments>https://googledata.org/google-code/improving-the-issue-tracker-for-larger-projects/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 19:32:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Jason Robbins, Google CodeWhen we created the issue tracker for Project hosting on Google Code our goal was to keep things simple. We had found that most issue trackers include too many fields and options that aren't applicable to a given issue. As ...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Jason Robbins, Google Code</span><br /><br />When we created the issue tracker for Project hosting on Google Code our goal was to keep things simple. We had found that most issue trackers include too many fields and options that aren't applicable to a given issue. As a result, we intentionally did not implement issue relationships like is-blocked-on and is-duplicate-of. For most of the projects that we host, simply adding a comment that mentions the other issue is enough information to get the job done.<br /><br />Now we host more large projects, and some projects that started small with us have grown large. So, starting today, we are offering a formal 'Blocked on' field. And, when you close an issue as 'Duplicate', you can merge it into the original issue. For more information, take a look at our <a href="http://code.google.com/p/support/wiki/FAQ#Issue_Tracking">issue tracker documentation</a>.<br /><br />For projects that regularly triage issues, you can now pick where to go after you have finished updating an issue.<br /><br />We hope that these changes help make the issue tracker as easy to use on larger projects as it is for smaller ones.<br /><br />As always, we look forward to your <a href="http://code.google.com/p/support/issues/list">feedback</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-6633354951058720442?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/improving-the-issue-tracker-for-larger-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gadgets and Google Code</title>
		<link>https://googledata.org/google-code/gadgets-and-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gadgets-and-google-code</link>
		<comments>https://googledata.org/google-code/gadgets-and-google-code/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 23:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Jacob Lee and Ali Pasha, Google CodeGadgets and Google Code have always had a special relationship, as many developers use Google Code to host their gadgets. We are, therefore, happy to announce that you can now add gadgets to any wiki page (includi...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Jacob Lee and Ali Pasha, Google Code</span><br /><br />Gadgets and Google Code have always had a special relationship, as many developers use Google Code to host their gadgets. We are, therefore, happy to announce that you can now add gadgets to any wiki page (including the project homepage) on Google Code using the &lt;wiki:gadget&gt; syntax shown below.<br /><br />&lt;wiki:gadget url="http://www.ohloh.net/projects/gwt/widgets/project_cocomo.xml" border="0"&gt;<br /><br /> To show you how powerful this is, we created a page of <a title="gadgets we found useful" href="http://code.google.com/p/support/wiki/InterestingDeveloperGadgets" id="s_8w">gadgets we found useful</a>. See <a title="MarkMails announcement" href="http://markmail.blogspot.com/2008/10/google-code-adds-gadgets-markmail-helps.html" id="g5u6">MarkMail's announcement</a> and <a title="Ohloh's announcement" href="http://www.ohloh.net/announcements/google_gadgets" id="ixkz">Ohloh's announcement</a> for more details about their gadgets.<br /><br />While gadgets are a great way to bring content to Google Code, they are also a great way to take a little piece of Google Code with you. Take the google-web-toolkit issue tracker as an example:<br /><br /><script src="http://www.gmodules.com/ig/ifr?url=http://google-code-project-hosting-gadgets.googlecode.com/svn/build/test/issuetracker/gcIssueTracker.xml&amp;up_projectName=gears&amp;up_userName=&amp;up_issueType=all&amp;up_sortBy=-Opened&amp;synd=open&amp;w=320&amp;h=200&amp;title=Google+Gears+Issues&amp;border=%23ffffff%7C0px%2C1px+solid+%2382CAFA%7C0px%2C2px+solid+%23BDEDFF%7C0px%2C3px+solid+%23E0FFFF&amp;output=js"></script><br /><br />They enable you to create your own personal dashboard. In fact, this is how I track my various projects. To enable this, new Google Code project hosting gadgets are now available for each project on Google Code. They can be discovered under the feeds link in the project homepage.<br /><br /><a href="http://code.google.com/p/google-web-toolkit/feeds">http://code.google.com/p/google-web-toolkit/feeds</a><br /><a href="http://code.google.com/p/wikia/feeds">http://code.google.com/p/wikia/feeds</a><br /><br />Let us know what you think! We'd love to hear your ideas on how to make the Gadgets integration on Google Code even better!<br /><br />  As always, we look forward to your <a title="feedback" href="http://groups.google.com/group/google-code-hosting" id="q486">feedback</a>. <wiki:gadget><wiki:gadget url="http://www.ohloh.net/projects/gwt/widgets/project_cocomo.xml" border="0"><br /></wiki:gadget></wiki:gadget><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-7181167270826685222?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/gadgets-and-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Updates on Google Code</title>
		<link>https://googledata.org/google-code/project-updates-on-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=project-updates-on-google-code</link>
		<comments>https://googledata.org/google-code/project-updates-on-google-code/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 17:37:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Jacob Moon and Jacob Lee, Google CodeWe are happy to announce that we just launched project update streams (and feeds) for each open source project on Google Code. The new project updates page, which is linked to from each project homepage, shows th...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Jacob Moon and Jacob Lee, Google Code</span><i></i><br /><br />We are happy to announce that we just launched project update streams (and feeds) for each open source project on Google Code. The new project updates page, which is linked to from each project homepage, shows the updates that are occurring in the project.<br /><div id="u4vf" style="padding: 1em 0pt; text-align: left;"><a href="http://code.google.com/p/gears/updates"><img style="width: 459px; height: 320px;" src="https://docs.google.com/a/google.com/File?id=cdfsxfw_544crv43vxn_b" /></a></div><br />One of the benefits of open source software development is that you can watch how the software is built. Take a look at the updates of some popular open source projects:<br /><br /><ul><li><a href="http://code.google.com/p/google-web-toolkit/updates/list">http://code.google.com/p/google-web-toolkit/</a><a href="http://code.google.com/p/google-web-toolkit/updates/list"><wbr>updates/list</a></li><li><a href="http://code.google.com/p/fbug/updates/list">http://code.google.com/p/fbug/updates/list</a></li><li><a href="http://code.google.com/p/digg/updates/list">http://code.google.com/p/digg/updates/list</a><br /></li></ul><div><br /></div>These updates are also available as feeds.  Here are the feeds for the urls above:<br /><ul><li><a href="http://code.google.com/feeds/p/google-web-toolkit/updates/basic">http://code.google.com/feeds/</a><a href="http://code.google.com/feeds/p/google-web-toolkit/updates/basic"><wbr>p/google-web-toolkit/updates/basic</a></li><li><a href="http://code.google.com/feeds/p/fbug/updates/basic">http://code.google.com/feeds/</a><a href="http://code.google.com/feeds/p/fbug/updates/basic"><wbr>p/fbug/updates/basic</a></li><li><a href="http://code.google.com/feeds/p/digg/updates/basic">http://code.google.com/feeds/</a><a href="http://code.google.com/feeds/p/digg/updates/basic"><wbr>p/digg/updates/basic</a></li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-1539481285115391194?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/project-updates-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Table Formatters make Visualization tables even nicer</title>
		<link>https://googledata.org/google-code/table-formatters-make-visualization-tables-even-nicer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=table-formatters-make-visualization-tables-even-nicer</link>
		<comments>https://googledata.org/google-code/table-formatters-make-visualization-tables-even-nicer/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 14:55:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Hillel Maoz, Google Visualization TeamWe often forget, but the simple table is a visualization too. In fact, all of our visualizations are based on the DataTable  structure - a table itself.In order to make this most basic visualization more appeali...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;">By Hillel Maoz, Google Visualization Team</span><br /><br />We often forget, but the simple table is a visualization too. In fact, all of our visualizations are based on the <a href="http://code.google.com/apis/visualization/documentation/reference.html#DataTable">DataTable </a> structure - a table itself.<br /><br />In order to make this most basic visualization more appealing and useful, we added <a href="http://code.google.com/apis/visualization/documentation/gallery/table.html#Formatters">formatters</a> to our JS table. Take a look at this arrow-format example, great for visualizing stock quotes or anything else that goes up and down. :-)<br /><br />For example, to produce this result:<br /><br /><a href="http://code.google.com/apis/visualization/documentation/gallery/table.html#Arrow_Format" imageanchor="1"><img border="0" src="http://1.bp.blogspot.com/_QKsE9CsgBoM/SLcX_FanloI/AAAAAAAAAT0/u3iXP20V5sU/s320-R/cfhsvw2d_508gbnnd6dw_b.jpeg" /></a><br /><br />Use this code:<br /><br /><pre><code>  &lt;script type='text/javascript' src='http://www.google.com/jsapi'&gt;&lt;/script&gt;<br />  <br />  &lt;script type='text/javascript'&gt;<br />    google.load('visualization', '1.0', {'packages': ['table']});<br />    google.setOnLoadCallback(draw);<br />    function draw() {<br />      // Create a datatable with your data.<br />      var dataTable = new google.visualization.DataTable();<br />      dataTable.addColumn('string', 'Equity / Index');<br />      dataTable.addColumn('number', '% Change');<br />      dataTable.addRows(5);<br />      var r = 0;<br />      dataTable.setCell(r, 0, 'Acme.com');<br />      dataTable.setCell(r, 1, 3.1, '3.1%');<br />      r++;<br />      dataTable.setCell(r, 0, 'Brick &amp; Mortar Groceries Inc');<br />      dataTable.setCell(r, 1, -2.43, '-2.43%');<br />      r++;<br />      dataTable.setCell(r, 0, 'S&amp;P 500');<br />      dataTable.setCell(r, 1, 0.94, '0.94%');<br />      r++;<br />      dataTable.setCell(r, 0, 'Dow Jones');<br />      dataTable.setCell(r, 1, 1.2, '1.2%');<br />      r++;<br />      dataTable.setCell(r, 0, 'Nikkei');<br />      dataTable.setCell(r, 1, -0.23, '-0.23%');<br />      // Create a table visualization.<br />      var container = document.getElementById('table');<br />      table = new google.visualization.Table(container);<br />      // Apply a number formatter to the 2nd column.<br />      var options = {'allowHtml' : true};<br />      var formatter = new google.visualization.TableArrowFormat();<br />      formatter.format(dataTable, 1);<br />      // Draw the table visualization with the applied formatting.<br />      table.draw(dataTable, options);<br />    }<br />  &lt;/script&gt;</code></pre><br />Or this example of Number Formatters, good for accountants and whoever likes numbers:<br /><br /><a href="http://code.google.com/apis/visualization/documentation/gallery/table.html#Number_Format"><img border="0" src="http://4.bp.blogspot.com/_QKsE9CsgBoM/SLcYiY09gEI/AAAAAAAAAT8/4LrWCZTq8ak/s320-R/cfhsvw2d_509fzzksdcr_b.jpeg" /></a><br /><br />Which can be generated by this code:<br /><br /><pre><code>  &lt;script type='text/javascript' src='http://www.google.com/jsapi'&gt;&lt;/script&gt;<br />  <br />  &lt;script type='text/javascript'&gt;<br />    google.load('visualization', '1.0', {'packages': ['table']});<br />    google.setOnLoadCallback(draw);<br />    function draw() {<br />      // Create a datatable with your data.<br />      var dataTable = new google.visualization.DataTable();<br />      dataTable.addColumn('string', 'Account', 'account');<br />      dataTable.addColumn('number', 'Balance', 'balance');<br />      dataTable.addRows(5);<br />      var r = 0;<br />      dataTable.setCell(r, 0, 'Electronics');<br />      dataTable.setCell(r, 1, 12000);<br />      r++;<br />      dataTable.setCell(r, 0, 'Appliances');<br />      dataTable.setCell(r, 1, -1000);<br />      r++;<br />      dataTable.setCell(r, 0, 'Gadgets');<br />      dataTable.setCell(r, 1, -21000);<br />      r++;<br />      dataTable.setCell(r, 0, 'Accessories');<br />      dataTable.setCell(r, 1, 5560);<br />      r++;<br />      dataTable.setCell(r, 0, 'Casings');<br />      dataTable.setCell(r, 1, 13092);<br />      // Create a table visualization.<br />      var container = document.getElementById('table');<br />      table = new google.visualization.Table(container);<br />      // Apply an number formatter to the 2nd column.<br />      var options = {'allowHtml' : true};<br />      var formatter = new google.visualization.TableNumberFormat(<br />          {prefix: '$', negativeColor: 'red', negativeParens: true});<br />      formatter.format(dataTable, 1);<br />      // Draw the table visualization with the applied formatting.<br />      table.draw(dataTable, options);<br />    }<br />  &lt;/script&gt;</code></pre><br />And, lastly, this example of a bar-formatter, which can be used to visually show relative distances from an anchor-point:<br /><br /><a href="http://code.google.com/apis/visualization/documentation/gallery/table.html#Bar_Format"><img border="0" src="http://2.bp.blogspot.com/_QKsE9CsgBoM/SLcY-C0QO6I/AAAAAAAAAUE/tFIsfj44Arc/s320-R/cfhsvw2d_510dn4h8xgh_b.jpeg" /></a><br /><br />Using this code:<br /><br /><pre><code>  &lt;script type='text/javascript' src='http://www.google.com/jsapi'&gt;&lt;/script&gt;<br />  <br />  &lt;script type='text/javascript'&gt;<br />    google.load('visualization', '1.0', {'packages': ['table']});<br />    google.setOnLoadCallback(draw);<br />    function draw() {<br />      // Create a datatable with your data.<br />      var dataTable = new google.visualization.DataTable();<br />      dataTable.addColumn('string', 'Place', 'place');<br />      dataTable.addColumn('number', 'Altitude', 'altitude');<br />      dataTable.addRows(5);<br />      var r = 0;<br />      dataTable.setCell(r, 0, 'Dead Sea');<br />      dataTable.setCell(r, 1, -420);<br />      r++;<br />      dataTable.setCell(r, 0, 'Death Valley');<br />      dataTable.setCell(r, 1, -86);<br />      r++;<br />      dataTable.setCell(r, 0, 'Mt. Everest');<br />      dataTable.setCell(r, 1, 8848);<br />      r++;<br />      dataTable.setCell(r, 0, 'Mt. Kilimangaro');<br />      dataTable.setCell(r, 1, 5895);<br />      r++;<br />      dataTable.setCell(r, 0, 'Marianas Trench');<br />      dataTable.setCell(r, 1, -10924);<br />      // Create a table visualization.<br />      var container = document.getElementById('table');<br />      table = new google.visualization.Table(container);<br />      // Apply an arrow formatter to the 2nd column.<br />      var options = {'allowHtml' : true};<br />      var formatter = new google.visualization.TableBarFormat(<br />           {base: 0, showValue: true, min: 12000, max: 12000});<br />      formatter.format(dataTable, 1);<br />      // Draw the table visualization with the applied formatting.<br />      table.draw(dataTable, options);<br />    }  <br />  &lt;/script&gt;</code></pre><br />For the complete list of currently available formatters, see our <a href="http://code.google.com/apis/visualization/documentation/gallery/table.html">Table documentation</a> with included examples. We're working on more formatters, which we will announce on our <a href="http://groups.google.com/group/google-visualization-api">discussion group</a> when we make them available.<br /><br />For more info on using and creating visualizations, visit our <a href="http://code.google.com/apis/visualization/documentation/">documentation pages</a>.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-590515788740694249?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/table-formatters-make-visualization-tables-even-nicer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two new ways to location-enable your web apps</title>
		<link>https://googledata.org/google-code/two-new-ways-to-location-enable-your-web-apps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=two-new-ways-to-location-enable-your-web-apps</link>
		<comments>https://googledata.org/google-code/two-new-ways-to-location-enable-your-web-apps/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 20:06:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Steve Block, Gears EngineerWe just launched two new ways to give your web apps free and secure access to a user's location, without requiring that user to enter it manually.First, there's the AJAX API property that provides a simple way to get an ap...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Steve Block, Gears Engineer</span><br /><br /><div id="nsog0" style="margin-top: 0px; margin-bottom: 0px;"><span class="Apple-style-span" style=";font-family:Georgia;font-size:16;"  ></span></div><span><span>We just launched two new ways to give your web apps free and secure access to a user's location, without requiring that user to enter it manually.<br /></span></span><p>First, there's the <a href="http://code.google.com/apis/ajax/documentation/#ClientLocation">AJAX API property</a> that provides a simple way to get an approximate, region-level estimate of a user's location based on their IP address.  It's as simple as referencing <code>google.loader.ClientLocation</code>, which is made available using the Google AJAX API Loader. This API does not require users to install any client-side software. You can see this new AJAX API in action as part of the <a href="http://www.google.com/2008election/">2008 US Election gadget</a> -- the "News by State" will show local news for the state associated with the user's IP.</p><p>Second, the <a href="http://code.google.com/apis/gears/api_geolocation.html">Gears Geolocation API</a> provides a way to get a more precise estimate of a user's location. On mobile devices with Gears installed, the Geolocation API can use the <a href="http://googlemobile.blogspot.com/2008/06/google-enables-location-aware.html">cell-ID of nearby cell towers or on-board GPS</a> (if either is available) to improve the postion fix.  In the near future, we'll be adding data from your WiFi connection to improve accuracy even further, on both desktop and mobile.  In all cases, Gears takes care of assimilating the results from each source and returning the best available position estimate.</p><p>The Geolocation API has two JavaScript methods: <code>getCurrentPosition()</code> makes a single, one-off attempt to get a position fix, while <code>watchPosition()</code> watches the user's position over time, and provides an update whenever the position changes.  Both methods allow you to configure which sources of location information are used.  Gears also keeps track of the best position fix obtained from these calls and makes it available as the <code>lastPosition</code> property. This is a simple way to get an approximate position fix with low cost in terms of both network and battery resources.</p><p>The privacy of users' location information is extremely important.  The first time your site calls the Geolocation API to request a user's location, that user will be shown a permissions dialog where they can choose to allow or deny your site access.  Users can change that decision at any time via the "Gears settings" dialog in the browser menu.  Google does not keep location information about users when your site uses the Geolocation API.</p><p>To use the Geolocation API your users may need to install the Gears browser plugin, a simple process on both desktop and mobile. The Geolocation API is available on <a href="http://code.google.com/apis/gears/gears_faq.html#supportedSystems">platforms currently supported by Gears</a>, including Internet Explorer, Firefox and IE Mobile (selected devices only). For users to be able to use location-enabled features on mobile they will need a Windows Mobile device that supports GPS or cell-ID lookup (for example the Samsung BlackJack II and the HTC Touch Dual, see list of supported device models in our <a href="http://www.google.com/support/mobile/bin/answer.py?answer=105928">FAQ</a>).  We are working hard to bring Gears to more mobile platforms soon.  You can download and install Gears at gears.google.com.  Or try out some of the first <a href="http://googlemobile.blogspot.com/2008/08/new-gears-geolocation-api-powers-mobile.html">location-enabled mobile web apps using Gears</a>.</p><p>Like the rest of Gears, this new Geolocation API is open source. We're also doing our best to work with existing and emerging standards. Gears now implements the current editor's draft of the <a href="http://dev.w3.org/geo/api/spec-source.html">W3C Geolocation specification</a>, which we've helped to define in collaboration with Microsoft, Mozilla, and others.  We're committed to continued collaboration around the emerging HTML5 standard and the APIs specified by the W3C Web Applications Working Group. The goal for Gears is to advance browser capabilities, and part of that is helping define future web standards.</p><p>If you're interested in providing feedback or contributing to Gears, there's more info on the <a href="http://code.google.com/apis/gears">project website</a>.  There's also an <a href="http://groups.google.com/group/google-ajax-search-api">AJAX APIs discussion group</a> -- we're anxious to hear what you think.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-7730687991190495497?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/two-new-ways-to-location-enable-your-web-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looks Good To Me &#8211; Source Code Review Tools</title>
		<link>https://googledata.org/google-code/looks-good-to-me-source-code-review-tools/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=looks-good-to-me-source-code-review-tools</link>
		<comments>https://googledata.org/google-code/looks-good-to-me-source-code-review-tools/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 03:23:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Steve McKay and Jason Robbins, Open Source TeamCode reviews are the rule at Google -- peer review reduces bugs, increases code quality, reduces maintenance cost, opens up team communication, and helps get the job done right the first time. Like many...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Steve McKay and Jason Robbins, Open Source Team</span><br /><br />Code reviews are the rule at Google -- peer review reduces bugs, increases code quality, reduces maintenance cost, opens up team communication, and helps get the job done right the first time. <br /><br />Like many open source developers, Google engineers used to rely on mail and textual diffs when doing code reviews. That made code reviews a drag.  <a title="Mondrian" href="http://video.google.com/videoplay?docid=-8502904076440714866" id="tmx1">Mondrian</a>, a web based code review tool, made the process much more efficient by presenting the diffs and comments right in our browser.  Mondrian inspired the open source project <a title="Review Board" href="http://www.review-board.org/" id="kyyk">Review Board</a>, and led to <a title="Mondrian/Rietveld" href="http://code.google.com/p/rietveld/" id="j3:2">Rietveld</a>, and now the new code review tools are available on <a title="Google Code's Project Hosting" href="http://code.google.com/hosting/" id="hl4g">Google Code's Project Hosting</a>. <br /><br />Reviewing code in your project is simple: browse any source file or diff, double click on a source line to add comments, then publish your comments along with a general comment and score for the revision. <div id="vqhl" style="padding: 1em 0pt; text-align: left;"><img id="dldb" style="width: 407px; height: 198px;" src="https://docs.google.com/a/google.com/File?id=cdfm3zjr_1069m9wsjcw_b" /></div>You can see <a title="code reviews in action" href="http://code.google.com/p/support/source/detail?r=70" id="lm6.">code reviews in action</a> on the code.google.com support project.              So why are you still reading this? <a title="Learn more." href="http://code.google.com/p/support/wiki/CodeReviews" id="e9yz">Learn how to use code reviews</a> and don't forget to <a title="Let us know what you think." href="http://code.google.com/p/support/issues" id="ozv_">let us know what you think.</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-968787934582662419?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/looks-good-to-me-source-code-review-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New feeds for Project hosting on Google Code</title>
		<link>https://googledata.org/google-code/new-feeds-for-project-hosting-on-google-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-feeds-for-project-hosting-on-google-code</link>
		<comments>https://googledata.org/google-code/new-feeds-for-project-hosting-on-google-code/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 20:27:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Andy Chu, Google Code TeamWe get a lot of feedback on Google Code and one of the biggest requests have been for feeds (as you can see in issue 8, issue 131, or issue 190). Therefore, I'm happy to announce that we now have Atom feed available for you...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Andy Chu, Google Code Team</span><br /><br /><span class="Apple-style-span" style=";font-family:Verdana;font-size:13;"  ><div id="q:.2" style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size:100%;">We get a lot of <a id="y5yb" href="http://code.google.com/p/support/issues/list" title="feedback" style="color: rgb(85, 26, 139);">feedback</a> on Google Code and one of the biggest requests have been for feeds (as you can see in <a id="ee-l" href="http://code.google.com/p/support/issues/detail?id=8&amp;can=1&amp;q=feed%20owner:andy.chooooo&amp;colspec=ID%20Type%20Status%20Milestone%20Priority%20Stars%20Owner%20Summary" title="issue">issue 8</a>, <a id="jhhs" href="http://code.google.com/p/support/issues/detail?id=131&amp;can=1&amp;q=feed%20owner:andy.chooooo&amp;sort=-stars&amp;colspec=ID%20Type%20Status%20Milestone%20Priority%20Stars%20Owner%20Summary" title="issue 131">issue 131</a>, or <a id="ib5b" href="http://code.google.com/p/support/issues/detail?id=190&amp;can=1&amp;q=feed%20owner:andy.chooooo&amp;sort=-stars&amp;colspec=ID%20Type%20Status%20Milestone%20Priority%20Stars%20Owner%20Summary" title="issue 190" style="color: rgb(85, 26, 139);">issue 190</a>). Therefore, I'm happy to announce that we now have Atom feed available for you to track issues, downloads, Subversion changes, and Wiki updates.<br /></span></div><div id="inxy" style="margin-top: 0px; margin-bottom: 0px;"> </div><div id="inxy1" style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size:100%;"><br />As an example, you can take a look at feeds for Google Web Toolkit:</span></div><div id="wp1o" style="margin-top: 0px; margin-bottom: 0px;"> </div><div id="wp1o1" style="margin-top: 0px; margin-bottom: 0px;"><ul id="true" style="margin-top: 0px; margin-bottom: 0px;"><li id="wp1o2" style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size:100%;">Issues feed at <a id="w_qd" href="http://code.google.com/feeds/p/google-web-toolkit/issueupdates/basic" title="http//code.google.com/feeds/p/google-web-toolkit/issueupdates/basic">http://code.google.com/feeds/p/google-web-toolkit/issueupdates/basic</a></span></li><li id="a9k8" style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size:100%;">Downloads feed at <a id="f.wy" href="http://code.google.com/feeds/p/google-web-toolkit/downloads/basic" title="http//code.google.com/feeds/p/google-web-toolkit/downloads/basic">http://code.google.com/feeds/p/google-web-toolkit/downloads/basic</a></span></li><li id="wq17" style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size:100%;">Subversion changes feed at <a id="ofx:" href="http://code.google.com/feeds/p/google-web-toolkit/svnchanges/basic" title="http//code.google.com/feeds/p/google-web-toolkit/svnchanges/basic">http://code.google.com/feeds/p/google-web-toolkit/svnchanges/basic</a></span></li><li id="wq170" style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size:100%;">Wiki changes feed at<span style="text-decoration: underline;"> </span><a id="gkk:" href="http://code.google.com/feeds/p/google-web-toolkit/svnchanges/basic?path=/wiki/" title="http//code.google.com/feeds/p/google-web-toolkit/svnchanges/basic?path=/wiki/">http://code.google.com/feeds/p/google-web-toolkit/svnchanges/basic?path=/wiki/</a></span></li></ul></div><div id="yiab" style="margin-top: 0px; margin-bottom: 0px;"> </div><div id="rj7f9" style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size:100%;"><br />For the SVN changes feed you can add '?path=/path/' to the end of the url to filter the changes by path -- for example, '?path=/trunk/' or '?path=/wiki/'. Simply substitute 'google-web-toolkit' for your project to see your feeds. <br /><br />As always, if you have any feedback please do not hesitate to <a id="q-o1" href="http://code.google.com/p/support/issues/list" title="ask" style="color: rgb(85, 26, 139);">let us know</a>.</span></div></span><span style="font-style: italic;" class="byline-author"></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-5114635233789783526?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/new-feeds-for-project-hosting-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Search: Improved browsing and new search operators</title>
		<link>https://googledata.org/google-code/code-search-improved-browsing-and-new-search-operators/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-search-improved-browsing-and-new-search-operators</link>
		<comments>https://googledata.org/google-code/code-search-improved-browsing-and-new-search-operators/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 22:54:00 +0000</pubDate>
		<dc:creator><![CDATA[Ali Pasha]]></dc:creator>
				<category><![CDATA[Google Code]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By Dmitry Barashev, Google Code Search TeamSoftware engineers who work with huge code bases always wish searching thousands lines of code and navigating through the file and code structures was easier. They may use powerful IDEs for the local sources o...]]></description>
				<content:encoded><![CDATA[<span style="font-style: italic;" class="byline-author">By Dmitry Barashev</span><span style="font-style: italic;" class="byline-author">, Google Code Search Team</span><br /><br />Software engineers who work with huge code bases always wish searching thousands lines of code and navigating through the file and code structures was easier. They may use powerful IDEs for the local sources on their development workstations, but until recently they have been unable to efficiently browse huge amounts of the open source code in repositories and archives on the Internet.        The latest Google Code Search updates add a few features that improve code browsing and searching. The first one is Code Outline which shows you the structure of code written Java, C, C++, C#, Python, JavaScript and Pascal. You can find it under a new "Outline" tab next to the existing "Files" tab.<div id="fl9v1" style="margin-top: 0px; margin-bottom: 0px;"><div style="padding: 1em 0px; text-align: left;" id="ksuc"><span id="huba2" title="Src=File?id=cdfsxfw_483d3bctmfj_b" class="webdeveloper-display-image-paths"></span><img src="https://docs.google.com/a/google.com/File?id=cdfsxfw_483d3bctmfj_b" style="width: 484px; height: 263px;" id="yaqv" /></div></div><div id="fl9v3" style="margin-top: 0px; margin-bottom: 0px;"> </div> The second feature we added allows you to click on include and import statements in Java, C, C++ and Python code and jump directly to the included file, if it is in the same package. In the case where the included file comes from a third-party library or, say, from Linux headers, a search is performed for the included file in the indexed code base.    <div id="ve9d" style="padding: 1em 0pt; text-align: center; margin-top: 0px; margin-bottom: 0px;">     <div id="zhin" style="padding: 1em 0pt; text-align: left;"><div id="fes-"><span id="huba3" title="Src=File?id=cdfsxfw_484d427p5cf_b" class="webdeveloper-display-image-paths"></span><img src="https://docs.google.com/a/google.com/File?id=cdfsxfw_484d427p5cf_b" id="e.qg" /><br /><br />But what if the include list is too large and you can't guess where a class or method is defined? To help we added two new search operators, <i id="hn6e">class:</i> and <span style="font-style: italic;">function:</span> which allow you to restrict your regular expression to the names of classes and functions only. Together with the <span style="font-style: italic;">package:</span> operator and new radio button "Search in ..." that restricts search to the files from the specified package, these are powerful ways to find exactly what you are looking for.  Compare the results of <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=Shell" id="d5-l" title="searching Shell in the whole code base">searching for "Shell" in the whole code base</a> with the results of <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=class%3AShell&amp;sbtn=Search&amp;as_package=cvs+%3Apserver%3Aanonymous%40dev.eclipse.org%3A%2Fcvsroot%2Feclipse+org.eclipse.swt&amp;exact_package=1" id="ev03" title="searching for class:Shell inside SWT">searching for class:Shell inside SWT</a>.   <br /><br />We continue improving Code Search and look forward for your feedback at our <a href="http://groups.google.com/group/Google-Code-Search" id="ffzd" title="discussion group">discussion group</a>. </div></div>   </div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-5509574800712632267?l=googlecode.blogspot.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/google-code/code-search-improved-browsing-and-new-search-operators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
