<?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>x7 Labs &#187; Google</title>
	<atom:link href="http://x7.fi/category/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://x7.fi</link>
	<description>Random findings by the x7 Labs team</description>
	<lastBuildDate>Fri, 18 Jun 2010 11:03:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Polite extensions in Chrome</title>
		<link>http://x7.fi/2009/12/18/polite-extensions-in-chrome/</link>
		<comments>http://x7.fi/2009/12/18/polite-extensions-in-chrome/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 09:41:16 +0000</pubDate>
		<dc:creator>Harri</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://x7.fi/?p=174</guid>
		<description><![CDATA[Noticed a nice design in Chrome&#8217;s extension mechanism:
]]></description>
			<content:encoded><![CDATA[<p>Noticed a nice design in Chrome&#8217;s extension mechanism:</p>
<div id="attachment_175" class="wp-caption alignnone" style="width: 610px"><img class="size-full wp-image-175 " title="Extension requests additional permissions" src="http://x7.fi/wp-content/uploads/2009/12/ChromeAddOnMorePermissions.png" alt="Updated extensions requires additional permissions " width="600" height="256" /><p class="wp-caption-text">Extension requests additional permissions </p></div>
]]></content:encoded>
			<wfw:commentRss>http://x7.fi/2009/12/18/polite-extensions-in-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Public DNS benchmarking</title>
		<link>http://x7.fi/2009/12/04/google-public-dns-benchmarking/</link>
		<comments>http://x7.fi/2009/12/04/google-public-dns-benchmarking/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 09:19:38 +0000</pubDate>
		<dc:creator>Harri</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://x7.fi/?p=92</guid>
		<description><![CDATA[Yesterday, Google announced a public DNS service that promises to speed up your browsing experience.
We here at x7 Labs like our interwebs speedy, so I decided to take a quick look at the service. For testing, I used my home 110 Mbit/s cable modem connection from Welho.
As background information, I wanted to know how long [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, Google announced a public DNS service that promises to <a href="http://code.google.com/speed/public-dns/docs/performance.html">speed up your browsing experience</a>.</p>
<p>We here at x7 Labs like our interwebs speedy, so I decided to take a quick look at the service. For testing, I used my home 110 Mbit/s cable modem connection from Welho.</p>
<p>As background information, I wanted to know how long it took for packets to travel to Google data centers compare to my ISP.</p>
<p>TCP/IP packets travelled several additional hops compared to the local ISP  case. First they were beamed to Sweden, adding 10-20 ms to the roundtrip time. From there, they were routed to an unknown datacenter, possibly in UK or continental Europe.</p>
<p>All in all, the roundtrip time for Google DNS wasn&#8217;t bad, around 50 ms (see below), compared to 8-10 ms for my local ISP (not shown):</p>
<div id="attachment_133" class="wp-caption alignnone" style="width: 414px"><img class="size-full wp-image-133" title="google-dns-pingplot" src="http://x7.fi/wp-content/uploads/2009/12/google-dns-pingplot.gif" alt="UDP roundtrip test" width="404" height="362" /><p class="wp-caption-text">UDP roundtrip test</p></div>
<p>A side note: The media was in a frenzy when it was announced that Sweden is allowed to monitor all network traffic flowing through their backbones. At least until Google opens a data center in Finland (which is under construction), the Swedes can easily log DNS queries made by Finnish internet users through Google.</p>
<p>Next, I used the <a href="http://www.grc.com/dns/benchmark.htm">DNS Benchmarking tool</a> developed by Steve Gibson. It does exhaustive tests to find out how long it takes for the DNS servers to return both cached and uncached records. I compared my local ISP, OpenDNS and Google:</p>
<div id="attachment_95" class="wp-caption alignnone" style="width: 602px"><img class="size-full wp-image-95" title="google-dns-benchmark" src="http://x7.fi/wp-content/uploads/2009/12/google-dns-benchmark.png" alt="DNS Benchmark by GRC" width="592" height="365" /><p class="wp-caption-text">DNS Benchmark by GRC</p></div>
<p>My local ISP was twice as fast (~100 ms vs. ~200 ms) when serving uncached records, and around 5-6 times faster for cached DNS records (8-9 ms vs. 50-60 ms).</p>
<p>Next, I wanted to see if changing the system-wide DNS setting affects the browsing speed. The test case was very simple: reset all caches, open yahoo.com and record time spent in DNS. For this test, I used the excellent <a href="http://www.fiddler2.com/fiddler2/">Fiddler HTTP Debugging Proxy</a>.</p>
<p>Using my ISP&#8217;s DNS, name resolution time was around 300 milliseconds. Here&#8217;s a typical result:</p>
<div id="attachment_96" class="wp-caption alignnone" style="width: 455px"><img class="size-full wp-image-96" title="fiddler-isp-dns" src="http://x7.fi/wp-content/uploads/2009/12/fiddler-isp-dns.png" alt="Time spent in DNS (local ISP)" width="445" height="540" /><p class="wp-caption-text">Time spent in DNS (local ISP)</p></div>
<p>When I changed system settings to Google&#8217;s Public DNS, I noticed a difference:</p>
<div id="attachment_97" class="wp-caption alignnone" style="width: 457px"><img class="size-full wp-image-97 " title="fiddler-google-dns" src="http://x7.fi/wp-content/uploads/2009/12/fiddler-google-dns.png" alt="Time sent in DNS (Google)" width="447" height="543" /><p class="wp-caption-text">Time spent in DNS (Google)</p></div>
<p>Using the Google DNS Public Service increased name resolution time almost by a factor of 10x during actual browsing.</p>
<p>Clearly, Google Public DNS isn&#8217;t competitive in performance at the moment.</p>
]]></content:encoded>
			<wfw:commentRss>http://x7.fi/2009/12/04/google-public-dns-benchmarking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What you need to know about Chrome extensions</title>
		<link>http://x7.fi/2009/11/24/what-you-need-to-know-about-chrome-extensions/</link>
		<comments>http://x7.fi/2009/11/24/what-you-need-to-know-about-chrome-extensions/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 14:30:59 +0000</pubDate>
		<dc:creator>Ilari</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://x7.fi/?p=17</guid>
		<description><![CDATA[Extensions for Chrome are about to take off. The functionality has been in developer builds for a while, but Google is poised to bring it to all users.
1. Extensions are web apps
Extensions are ZIP packages with HTML, JavaScript, CSS and images inside. A JSON manifest tells Chrome what the extension does and what features it [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_18" class="wp-caption alignleft" style="width: 253px"><img class="size-full wp-image-18 " title="Google Mail Browser action" src="http://x7.fi/wp-content/uploads/2009/11/google-mail-checker-capture.png" alt="A browser action that shows unread messages." width="243" height="170" /><p class="wp-caption-text">A browser action that shows unread messages.</p></div>
<p><a href="http://code.google.com/chrome/extensions/index.html">Extensions for Chrome</a> are about to take off. The functionality has been in developer builds for a while, but Google is poised to bring it to all users.</p>
<h2>1. Extensions are web apps</h2>
<p>Extensions are ZIP packages with HTML, JavaScript, CSS and images inside. A JSON manifest tells Chrome what the extension does and what features it has.</p>
<h2>2. What they can do</h2>
<ul>
<li>Edit page content (ad blocking!)</li>
<li>Use web APIs (through RSS, JSON etc.)</li>
<li>Add buttons and information to the toolbar</li>
<li>Open and close windows and tabs</li>
<li>Manage bookmarks</li>
</ul>
<p>All access to tabs, windows and content is done through JavaScript APIs. Each extension is run isolated, and it cannot access other extensions or scripts that run on web pages.</p>
<h2>3. What they can&#8217;t</h2>
<ul>
<li>Run arbitrary code</li>
<li>Add toolbars, sidebars, menu items etc.</li>
<li>Manage downloads, cookies, proxies etc.</li>
<li>Edit browser preferences</li>
</ul>
<p>Note that future versions may have API hooks that do these. For now, extensions can&#8217;t touch the inner workings of the browser.</p>
<h2>4. Browser and page actions</h2>
<p>These are the two main types of UI for extensions. A browser action is a button that&#8217;s always visible. When clicked, it can open a new tab, show an info popup or do some other function. The button can change appearance and have an overlay badge like an unread count.</p>
<p>Page actions are the same, but the button only appears when necessary. This could be used for subscription buttons, for example.</p>
<h2>5. Install without a restart</h2>
<p>Click to install, enable/disable, update or uninstall. No restarts ever. For someone with a long Firefox background, this was quite the eye-opener.</p>
<h2>6. Security model</h2>
<p>Chrome isn&#8217;t a Firefox-like &#8220;extensions can do anything&#8221; system. Every extension must declare privileges it needs, like access to bookmarks or a specific domain. These are shown to the user when installing an extension.</p>
<h2>7. Userscripts</h2>
<p>Google provides a way to package existing Greasemonkey userscripts into Chrome extensions. In fact, userscripts are the way page content is manipulated in Chrome.</p>
<h2>8. Background processes</h2>
<p>If extensions are just JavaScript, how can you monitor ongoing events? An extension gets an invisible always-open page, where the JavaScript can keep on running.</p>
<h2>9. Updates</h2>
<p>Updates are fully automatic. An extension&#8217;s manifest contains an URL that Chrome listens to for future updates.</p>
<h2>10. Gallery</h2>
<p>Google already has a gallery for Chrome themes, and an extension one will open soon. Developers are invited to <a href="https://chrome.google.com/extensions/developer/dashboard">submit their extensions</a> for the gallery.</p>
]]></content:encoded>
			<wfw:commentRss>http://x7.fi/2009/11/24/what-you-need-to-know-about-chrome-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
