<?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>theMechanism</title>
	<atom:link href="http://themechanism.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://themechanism.com/blog</link>
	<description>your brand should be so lucky</description>
	<lastBuildDate>Thu, 17 Jun 2010 17:04:58 +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>Live blogging Google I/O: HTML5 status update</title>
		<link>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-html5-status-update/</link>
		<comments>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-html5-status-update/#comments</comments>
		<pubDate>Fri, 21 May 2010 00:28:57 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=972</guid>
		<description><![CDATA[Ian FetteJeff Chang


Overview
* Recap: What&#8217;s in HTML5
* What&#8217;s happened since I/O 2009?
** Lessons learned
** New APIs
* What&#8217;s next?
What is meant by HTML5
* It&#8217;s a buzzword
* Spec has shed numerous features
* Storage specs are now separate
* File specs and others live in WebApps, DAP
* Geolocation
* WebGL
Many things were split out for convenience; too many things for [...]]]></description>
			<content:encoded><![CDATA[<p>Ian Fette<br />Jeff Chang</p>
<div><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/tC3-NpIGx1U&amp;hl=en_US&amp;fs=1&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tC3-NpIGx1U&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></div>
<p><span id="more-972"></span></p>
<h2>Overview</h2>
<p>* Recap: What&#8217;s in HTML5<br />
* What&#8217;s happened since I/O 2009?<br />
** Lessons learned<br />
** New APIs<br />
* What&#8217;s next?</p>
<h2>What is meant by HTML5</h2>
<p>* It&#8217;s a buzzword<br />
* Spec has shed numerous features<br />
* Storage specs are now separate<br />
* File specs and others live in WebApps, DAP<br />
* Geolocation<br />
* WebGL</p>
<p>Many things were split out for convenience; too many things for a single working group</p>
<h2>Areas we are excited by</h2>
<p>* We&#8217;ve spent the past year on &#8230;<br />
** Offline (Appcache, Storage)<br />
** Media (Video, Audio, &#8230;)<br />
** Networking (Web Sockets)<br />
** CSS3, Paged Media, Layout<br />
** Platform integration (Drag and Drop, Notifications, Geolocation, &#8230;)<br />
* Focus is providing richer experience for web applications</p>
<h2>What we&#0039;ve learned</h2>
<p>Offline Apps</p>
<p>* Discovery and re-discovery<br />
** Remembering to type in exact URL is difficult<br />
** Many people don&#8217;t use bookmarks<br />
** Web Store helps discovery and re-discovery<br />
* Packaging as an &#8220;app&#8221; can bootstrap permissions that need to be granted before use.</p>
<p>Indexed Database API</p>
<p>* &#8220;Specability&#8221; concerns around SQL<br />
* A simple database, no SQL<br />
* Has a &#8220;key&#8221; (DOMString or long) and associated &#8220;value&#8221; (object, array, &#8230;)</p>
<p>In the process of implementing a ??? DB, but no browser yet implements it. Why not SQL!</p>
<p>Storing Files</p>
<p>* Currently  implemented storage APIs (Local Storage, Session Storage, WebSQLDB) don&#8217;t meet all the use cases<br />
* Storing binary data in Local Storage, Database can have severe performance implications<br />
* Need to be able to treat data as a file <img src="some file"><br />
* Filesystem API (and FileReader, FileWriter) gives web applications a sandboxed, per-origin filesystem</p>
<p>Geolocation (aka &#8220;Security UI is hard&#8221;)</p>
<p>* Access the user&#8217;s location via a JavaScript API<br />
* Accuracy varies based on device<br />
* Permission model varies for embedded content (iframes)</p>
<p>Tied permission not to origin of JavaScript, but to top URL (for iframes and embedded maps.google.com)</p>
<p>Shared State between Pages</p>
<p>* Shared worker<br />
** Standard, cross-browser<br />
** Works well for apps designed around message passing<br />
** No single script context<br />
** Can&#8217;t pass around parts of the DOM<br />
** Example: Controlling access to shared File System API resources from multiple tabs</p>
<p>* Magic iFrame<br />
** Can pass around parts of the DOM<br />
** Can share scripting contexts<br />
** Example: Gmail window tearoffs</p>
<p>Dragging files on the web is a drag</p>
<p>* Intuitive, simple ways to upload, download files<br />
* Drag-in: desktop to browser<br />
** Listen to drop event<br />
** Obtain File object, send via XHR<br />
* Drag-out: browser to desktop<br />
** DownloadURL format in DataTransfer object<br />
** Contains file type, name, URL</p>
<p>Notifications</p>
<p>* Let the app notify the user in an unobtrusive manner<br />
* Developer can provide HTML or plain text content<br />
* Permission is assigned on origin basis<br />
* Currently two specs:<br />
** http://dev.w3.org/2006/webapi/WebNotifications/publish/<br />
** http://www.chromium.org/developers/design-documents/desktop-notifications<br />
* Plan to deprecate the latter in favor of the former</p>
<h2>What&#8217;s over the horizon</h2>
<p>TTS (text-to-speech) and voice recognition</p>
<p>* Voice is the hot new thing in mobile<br />
* Let a web app accept voice commands and input<br />
* Speak results to the user</p>
<input type="speech" grammar="..." onchange="..." autostop=".." ...>
<tts value="some text" onplay="..." onended="..."></tts></p>
<p>Webcam/microphone access</p>
<p>* Laptops and phones today ship with integrated webcams, microphones<br />
* Many use cases for accessing these devices:<br />
** Videoconferencing<br />
** Taking a picture (profile pics)<br />
** Scanning barcodes<br />
** Letting the world hear you sing a Lady Gaga song<br />
* Looking to expose APIs that let you capture a single blob and a s stream</p>
<p>[Wow, this is a win]</p>
<p>Positional Audio</p>
<p>* Adding JS apis for enhanced audio</p>
<p>Web GL</p>
<p>* JS bindings to OpenGL<br />
* Allows creation of 3D games in the web<br />
* Pioneered by Firefox, now being implemented in Google Chrome, Apple Safari and more</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-html5-status-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live blogging Google I/O: Optimize every bit of your site serving and web pages with Page Speed</title>
		<link>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-optimize-every-bit-of-your-site-serving-and-web-pages-with-page-speed/</link>
		<comments>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-optimize-every-bit-of-your-site-serving-and-web-pages-with-page-speed/#comments</comments>
		<pubDate>Thu, 20 May 2010 23:35:05 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=970</guid>
		<description><![CDATA[Bryan McQuadeRichard Rabbat


What you will get from this talk
* How performance affects your site
* Become familiar with page speed
* Learn about four new product features
** Page Speed exports
** Page Speed SDK
** Apache module
** Page Speed for ads, analytics
Web performance 101
* Speed = eyeballs
A bunch of numbers from O&#0039;Reilly Velocity Conference, May 2009
Building Blocks
Processing time at [...]]]></description>
			<content:encoded><![CDATA[<p>Bryan McQuade<br />Richard Rabbat</p>
<div><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/BaWokURhU_k&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BaWokURhU_k&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></div>
<p><span id="more-970"></span></p>
<h2>What you will get from this talk</h2>
<p>* How performance affects your site<br />
* Become familiar with page speed<br />
* Learn about four new product features<br />
** Page Speed exports<br />
** Page Speed SDK<br />
** Apache module<br />
** Page Speed for ads, analytics</p>
<h2>Web performance 101</h2>
<p>* Speed = eyeballs</p>
<p>A bunch of numbers from O&#0039;Reilly Velocity Conference, May 2009</p>
<h2>Building Blocks</h2>
<p>Processing time at the web server</p>
<p>Bandwidth and round-trip time on the network</p>
<p>Parse, resource fetches, layout and render and JavaScript on the client</p>
<h2>Example page load</h2>
<p>Client<br />
DNS lookup<br />
TCP connect<br />
HTTP request -></p>
<p>Server<br />
Server processing <-</p>
<p>Client<br />
Parse &#038; layout<br />
Subrequests -></p>
<h2>Three speed guidelines</h2>
<p>* Serve fewer bytes<br />
** Compress at serving<br />
** Optimize images<br />
** Minify HTML, JS, CSS<br />
** Cache aggressively: fastest serving is when you don&#8217;t have to (including pre-caching)<br />
* Parallelize resource downloads<br />
** Optimize the order of styles and scripts (more late)<br />
* Promote modern browsers</p>
<h2>New and improved optimization rules</h2>
<p>Minimize request size (including length of URL and size of cookie. Trying to fit in a single or as few TCP packets as possible). Particularly important for mobile.</p>
<p>Specify cache validator (need to learn more about this)</p>
<p>Specify character set early. Why? Otherwise browser guesses by buffering content and guessing the charset.</p>
<p>New features: the beacon, export to ShowSlow</p>
<h2>Page Speed SDK</h2>
<p>* Initially Page Speed was implemented in JavaScript, tightly coupled to Firefox<br />
* Ported Page Speed rules to browser independent C++ library<br />
* Recently released as a C++ SDK<br />
* Download: http://bit.ly/cwx7JX</p>
<p>gomez: tool to be release soon. Looked like an app.<br />
HAR to Page Speed (HAR? A new JSON format to transport info about page load speed) Steve Souders</p>
<p>har_to_pagespeed command line tool included in the Page Speed SDK<br />
Reads a HAR file, emits Page Speed results</p>
<h2>mod_pagespeed</h2>
<p>Very early in the lifecycle for this product.</p>
<p>An attempt to not tell developers how to speed up their website, but would actually implement it for them.</p>
<p>Automatically optimize things for you.<br />
* Minify HTML, JavaScript, CSS, images<br />
* Content rewriting to reduce serialization<br />
* Portable rewriting engine that can be re-used in other environments<br />
* Open source, under development: http://code.google.com/p/page-speed/</p>
<p>Looks interesting, but possibly dangerous. Would rather do this at build, not at run-time.</p>
<p>Using MD5 for URL fingerprinting seems like a brilliant idea, though. Again, would rather do it at build time.</p>
<h2>Looking at ads and trackers</h2>
<p>Filter option to analyze ads only, analyze trackers only, analyze content only or analyze the entire page.</p>
<h2>Possible future rules under evaluation</h2>
<p>Use chunked encoding</p>
<p>* Dynamic responses can be expensive to compute<br />
* But boilerplate header is usually static<br />
* Send header chunk first, then dynamic body later<br />
* Allows browser to begin fetching external JS and CSS sooner<br />
* Big wins for Google properties such as Search and Calendar</p>
<p>Definitely need to learn more about this (will this work with JS declared near the end of the body or would this be a case to move it back to the head)</p>
<p>Minimize the size of early loaded resources</p>
<p>* Modern browsers are much more efficient when fetching resources declared in HTML<br />
* But JS and CSS in the head still blocks the renderer!<br />
* Users stare at a blank screen until these resources are finished being fetched, parsed and executed.<br />
* Load only the minimal JS and CSS<br />
* Use Page Speed &#8220;Remove unused CSS&#8221; and &#8220;defer JS&#8221;</p>
<p>Minimize fetches from JavaScript</p>
<p>[This is interesting.]<br />
Modern browsers use speculative fetching to fetch JS resources in parallel.<br />
Speculative fetcher only parse HTML.<br />
Resources fetched using JavaScript are still serialized.</p>
<p>Page Speed for Chrome: There will be a Chrome extension integrated with Chrome Developer Tools coming later this year.</p>
<p>code.google.com/speed/page-speed/</p>
<p>http://code.google.com/p/page-speed/</p>
<p>http://groups.google.com/group/page-speed-discuss</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-optimize-every-bit-of-your-site-serving-and-web-pages-with-page-speed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live blogging from Google I/O: SEO site advice from the experts</title>
		<link>http://themechanism.com/blog/2010/05/20/seo-site-advice-from-the-experts/</link>
		<comments>http://themechanism.com/blog/2010/05/20/seo-site-advice-from-the-experts/#comments</comments>
		<pubDate>Thu, 20 May 2010 22:27:57 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=968</guid>
		<description><![CDATA[Matt CuttsGreg GrothausEvan Roseman


A review of sites submitted for SEO critique.
Schmitties! Google does not index meta name="keywords"
The page needs text. If you don&#8217;t/can&#8217;t do it yourself, try user-generated content.
WordPress love, but keep it current. Even use .htaccess to limit IP address access to wp-admin.
Try to get content above the fold; not critical, but better.
Add more [...]]]></description>
			<content:encoded><![CDATA[<p>Matt Cutts<br />Greg Grothaus<br />Evan Roseman</p>
<div><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7Hk5uVv8JpM&amp;hl=en_US&amp;fs=1&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7Hk5uVv8JpM&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></div>
<p><span id="more-968"></span></p>
<p>A review of sites submitted for SEO critique.</p>
<p>Schmitties! Google does not index <code>meta name="keywords"</code></p>
<p>The page needs text. If you don&#8217;t/can&#8217;t do it yourself, try user-generated content.</p>
<p>WordPress love, but keep it current. Even use .htaccess to limit IP address access to wp-admin.</p>
<p>Try to get content above the fold; not critical, but better.</p>
<p>Add more content to the title tag (from the <code>meta name="description"</code>)</p>
<p>[Matt Cutts is hilarious. This is probably the most enjoyable session I've attended yet.]</p>
<p>One of the review sites was hacked.</p>
<p>Don&#8217;t expect to rank high if all you do is syndicate other people&#8217;s content.</p>
<p>Look for blog post on local business SEO. Google places. (Recent blog post by one of the panelists. Ex-Google)<br />
Vanessa.</p>
<p>http://ninebyblue.com/</p>
<p>Related content is win</p>
<p>Don&#8217;t really want search ranking, you want traffic. And don&#8217;t really want traffic, want conversions.</p>
<p>If everything else on your site is pretty good and the URLs are bad, not that big of a deal. If you can get descriptive URLs, win. If not, no big deal.</p>
<p>Get the full address on there so Google can associate the site with a location.</p>
<p>Make sure internal URLs are singular or else use rel=&#8221;canonical&#8221;</p>
<p>#! is a way to help Ajax get crawled. Search &#8220;crawl Ajax&#8221; Definitely need to learn more about that.</p>
<p>Mayday is an algorithmic change in Google (should find out more about this).</p>
<p>http://searchengineland.com/analysis-which-url-shortening-service-should-you-use-17204</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/20/seo-site-advice-from-the-experts/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Developing web apps fro the Chrome web store</title>
		<link>http://themechanism.com/blog/2010/05/20/developing-web-apps-fro-the-chrome-web-store/</link>
		<comments>http://themechanism.com/blog/2010/05/20/developing-web-apps-fro-the-chrome-web-store/#comments</comments>
		<pubDate>Thu, 20 May 2010 19:43:29 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=966</guid>
		<description><![CDATA[Erik Kay
Yesterday&#8217;s keynote recap
* HTML5
* Web apps
* Chrome web store
Two perspectives on web apps
* Users: How can I get better web apps?
* Developers: How do I make money doing this?
From a user perspective, web apps can be difficult to find. Awareness.
No authoritative place for web apps. Web apps may contain a lot of contain, but [...]]]></description>
			<content:encoded><![CDATA[<p>Erik Kay</p>
<h2>Yesterday&#8217;s keynote recap</h2>
<p>* HTML5<br />
* Web apps<br />
* Chrome web store</p>
<h2>Two perspectives on web apps</h2>
<p>* Users: How can I get better web apps?<br />
* Developers: How do I make money doing this?</p>
<p>From a user perspective, web apps can be difficult to find. Awareness.</p>
<p>No authoritative place for web apps. Web apps may contain a lot of contain, but generally doesn&#8217;t contain content that can be crawled and indexed in the standard way.</p>
<p>The cheaper the purchase is, the more the trust and convenience issues get in the way.</p>
<p>Web apps are special to users, but the browser treats it like any other page.</p>
<p>Web apps don&#8217;t have a shortcut to launch them, don&#8217;t have deep OS integration. Etc.</p>
<p>Security model of browser is good, because able to trust most links. Part of model enforces limited capabilities. There are times we&#8217;d like the web app to do more, but no way to indicate this trust.</p>
<p>Web store link will be integrated tightly with the Chrome. Link always there.</p>
<p>Apps launched from the apps tab will display differently. Address bar hidden (to make the app central). The actual app tab will be smaller, but the favicon will be larger. Trying to treat the app as a first-class citizen.</p>
<h2>How to monetize web apps</h2>
<p>If costs are high and traffic is low, you don&#8217;t get to set the price, it sets itself.</p>
<p>Need to integrate with payment processors.<br />
In order to attract the most users, must target the least capable browser.</p>
<p>Web store wants to handle licensing and payment for you. Web is not a captive audience&#8211;not like the other phone app stores.</p>
<p>Pushing us to just use Chrome (???) and the Chrome web store. A lot of users on Chrome. Explicitly said, &#0034;We don&#8217;t need to target the lowest browser anymore.&#0034; Interesting (especially since the web app is available on the web) and a lot of these features aren&#8217;t even supported in Firefox. Reminds me a lot of what Gears promised two years ago (and never delivered). And then it was gone.</p>
<p>Any app can go in the web store (HTML, Flash).</p>
<p>Can add a JSON manifest and icons for packaging to the store.<br />
Can add permissions at install time to remove some of the browser&#8217;s security model!<br />
Can add permissions property to JSON manifest (array of required permissions).</p>
<p>If user trusts and installs the app, then will not be constantly prompted by the browser.</p>
<p>Installation similar to an extension.</p>
<p>Google Maps added geolocation support for select browers. (hadn&#8217;t noticed this before)</p>
<h2>Action items</h2>
<p>* FAQ: http://chrome.google.com/webstore<br />
* Docs: http://code.google.com/chrome/apps<br />
* Build a really cool web app<br />
* Join the discussions</p>
<p>Developer preview this summer and then open to public in the fall.</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/20/developing-web-apps-fro-the-chrome-web-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live blogging Google I/O: Google Analytics APIs: End to end</title>
		<link>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-google-analytics-apis-end-to-end/</link>
		<comments>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-google-analytics-apis-end-to-end/#comments</comments>
		<pubDate>Thu, 20 May 2010 18:35:09 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=962</guid>
		<description><![CDATA[Nick Mihailovski
First time GA has done anything at Google I/O.
Four components
* Processing
* Management
* Data collection
* Data exporting
Core processing
Dimensions: Strings (80 dimensions)
Metrics: Numeric values (95 metrics)
1. Logs (collection)
2. Goals, filters, profile settings (management)
3. Data structure (processing)
4. Functions (processing)
5. Tables (processing)
6. Query engine (export)
Core visitor interaction model
Visitor/session/hit levels
1&#215;1 tracking pixel with a number of parameters appended. Three [...]]]></description>
			<content:encoded><![CDATA[<p>Nick Mihailovski</p>
<p>First time GA has done anything at Google I/O.</p>
<p>Four components<br />
* Processing<br />
* Management<br />
* Data collection<br />
* Data exporting</p>
<h2>Core processing</h2>
<p>Dimensions: Strings (80 dimensions)<br />
Metrics: Numeric values (95 metrics)</p>
<p>1. Logs (collection)<br />
2. Goals, filters, profile settings (management)<br />
3. Data structure (processing)<br />
4. Functions (processing)<br />
5. Tables (processing)<br />
6. Query engine (export)</p>
<h2>Core visitor interaction model</h2>
<p>Visitor/session/hit levels</p>
<p>1&#215;1 tracking pixel with a number of parameters appended. Three of these parameters relate to visitor, session, hits.</p>
<p>Their back end parses their logs and sorts and stores based on parameters.</p>
<p>ga:visits</p>
<p>int visits(Session session, int index) {<br />
}<br />
[Too quick to get these code snippets]</p>
<h2>Developer platform</h2>
<p>Data types (several)<br />
Protocol (_utm.gif)<br />
Client libraries:<br />
* JavaScript (ga.js)<br />
* Android SDK<br />
* iPhone SDK<br />
* Mobile websites<br />
** PHP/JSP/ASP/Perl<br />
* ActionScript 3<br />
** Flash/Flex/Air<br />
* Silverlight</p>
<p>Account Management</p>
<p>Data types:<br />
* Accounts<br />
* Web properties<br />
* Profiles<br />
* Goals<br />
* Advanced segments</p>
<p>Protocol:<br />
* Google data</p>
<p>Data export API</p>
<p>Protocol: Google Data<br />
Client libraries:<br />
* Java<br />
* JavaScript<br />
* Python<br />
* .Net (C#)<br />
* Ruby<br />
* Perl<br />
* PHP</p>
<p>Use the Data feed query explorer (in Google Labs)</p>
<h2>Example integration</h2>
<p>Using visitor behavior to optimize user experience: ranking a number</p>
<p>Start with a list of unordered links. Can use GA to track the number of times people click on these links.</p>
<p>Demo is powered by MAMP; hopefully the code will be made available. (Definitely need this code)<br />
Two parts to the demo:<br />
1. How to send data explicitly to GA<br />
2. How to retrieve data from GA</p>
<p>Part one was implemented with PHP and JS<br />
Part two is a scheduled .Java application</p>
<p>Recently introduced asynchronous tracking (to avoid blocking the browser).</p>
<p>Working on a better developer ecosystem:</p>
<p>http://google.com/analytics/apps</p>
<p>Working on a better turn-around time than 24-hours.</p>
<p>Working on complete data export, but difficult because they store it as a cube. The current export API is actually more of a query API.</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-google-analytics-apis-end-to-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live blogging Google I/O: Keynote day two</title>
		<link>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-keynote-day-two/</link>
		<comments>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-keynote-day-two/#comments</comments>
		<pubDate>Thu, 20 May 2010 16:21:13 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=960</guid>
		<description><![CDATA[Vic Gundotra
Opens with an anecdote of how he got involved with Android at Google.
In 18 months, 60 compatible devices. Q408 to Q210.
21 OEMs, 48 countries, 59 carriers.
A review of the accomplishments/adoption numbers of Android.
50,000 applications in the Android marketplace.
5x growth in mobile search &#8216;08-&#8217;10 (all phones)
Android 2.2 Froyo announced. JiT compiler. 2x-5x speed up in [...]]]></description>
			<content:encoded><![CDATA[<p>Vic Gundotra</p>
<p>Opens with an anecdote of how he got involved with Android at Google.</p>
<p>In 18 months, 60 compatible devices. Q408 to Q210.<br />
21 OEMs, 48 countries, 59 carriers.</p>
<p>A review of the accomplishments/adoption numbers of Android.</p>
<p>50,000 applications in the Android marketplace.</p>
<p>5x growth in mobile search &#8216;08-&#8217;10 (all phones)</p>
<p>Android 2.2 Froyo announced. JiT compiler. 2x-5x speed up in applications.</p>
<p>Microsoft Exchange friendly:<br />
* auto-discovery<br />
* security policies<br />
* GAL lookup</p>
<p>New SDK features:</p>
<p>Application Data Backup API<br />
Cloud-to-device messaging API (this is impressive)<br />
** From desktop, driving directions sent to phone. Phone picks up message not as text, but as &#8220;intent,&#8221; immediately launches navigation application.</p>
<p>Tethering &#038; portable hotspot</p>
<p>The Froyo browser has a 2x-3x increase in JS performance. Doing laps around Eclair and the iPad.</p>
<p>Amazing voice recognition capabilities! Voice input will be a first-class means of interacting with Android.</p>
<p>Android will  support Flash and AIR. Digs at Apple.</p>
<p>Improvements to marketplace:<br />
* Easier to search/find apps<br />
* Search inside apps<br />
* Move to SD cards<br />
* Allow automatic updating</p>
<p>Application error reports: on crash user can send error report to the application developer.<br />
Developers can see the entire stack-trace of what happened.</p>
<p>Can search the marketplace via the PC. If logged in and purchase an app, app will be sent to device instead of having to tether and sync device with PC.</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/20/live-blogging-google-io-keynote-day-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Charts Toolkit: Google&#8217;s new unified approach for creating dynamic charts on the web</title>
		<link>http://themechanism.com/blog/2010/05/19/google-charts-toolkit-googles-new-unified-approach-for-creating-dynamic-charts-on-the-web/</link>
		<comments>http://themechanism.com/blog/2010/05/19/google-charts-toolkit-googles-new-unified-approach-for-creating-dynamic-charts-on-the-web/#comments</comments>
		<pubDate>Wed, 19 May 2010 23:59:54 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=958</guid>
		<description><![CDATA[Michael Fink
Amit Weinstein
http://code.google.com/apis/charttools/
First demo: http://www.xefer.com/twitter/
Google Chart Tools
Mission: Make the world&#8217;s structured data universally accessible &#038; useful by providing enticing visualizations.
1. Image charts: server side rendering
2. Interactive charts: Client side interactivity
3. Under the hood
4. Combining server side rendering with client side interactivity
Image charts
The Google Chart API. The URL contains the parameters of the chart you wish [...]]]></description>
			<content:encoded><![CDATA[<p>Michael Fink<br />
Amit Weinstein</p>
<p>http://code.google.com/apis/charttools/</p>
<p>First demo: http://www.xefer.com/twitter/</p>
<p>Google Chart Tools</p>
<p>Mission: Make the world&#8217;s structured data universally accessible &#038; useful by providing enticing visualizations.</p>
<p>1. Image charts: server side rendering<br />
2. Interactive charts: Client side interactivity<br />
3. Under the hood<br />
4. Combining server side rendering with client side interactivity</p>
<h2>Image charts</h2>
<p>The Google Chart API. The URL contains the parameters of the chart you wish to receive.</p>
<p>Launched a chart editor yesterday:</p>
<p>http://imagecharteditor.appspot.com</p>
<p>Started out with charts, but realized there&#8217;s a lot of rendering needs they could meet in the same way.<br />
* Math<br />
* QR codes<br />
* Dynamic icons<br />
* Flags</p>
<h2>Interactive charts</h2>
<p>Hundreds or thousands of hours spent developing charts in-house for Google needs. Decided to give back to community.</p>
<p>The interactive chart gallery is really a community effort.</p>
<p>* New look and feel for interactive charts (launched yesterday)<br />
** Color palette<br />
** Layout (negative vs positive space)<br />
* New chart combinations to be released in the next few weeks</p>
<h2>Demo site: BackPaki</h2>
<p>Wiki page for backpackers.</p>
<p>http://code.google.com/apis/ajax/playground/</p>
<p>Nice integration of interactive chart with the Google Maps API.</p>
<p>[Review the code snippet]<br />
goog.bind(function(e) {<br />
this.stack.push(e.region);<br />
});</p>
<p>Google Charts defines data table. Can use a query to bind the visualization to a Google spreadsheet.</p>
<p>The remote data sources provided by Google can be a Google spreadsheet, Java library or Python. Users can use a PHP  or Ruby on Rails.</p>
<p>Using the Google API, can convert your data to XML and then use the WP_Cumulus plugin (Flash-based).</p>
<p>Comparison:</p>
<p>Image charts<br />
* Static image<br />
* URL access<br />
* <1s</p>
<p>Interactive charts<br />
* Interactive experience<br />
* Data remains on client<br />
* Basic JavaScript<br />
* Data manipulation functions</p>
<p>In past year, wanted to combine the two efforts: server-side rendering with client-side interactivity.</p>
<p>Interactive GraphViz</p>
<p>When making request to server, receiving two things: a static image as well as the layout. That static image makes use of server-side rendering and caching, while the layout permits client-side interactivity.</p>
<p>Google Chart Tools</p>
<p>1. Rich gallery<br />
2. Free of charge<br />
3. Highly customizable<br />
4. Interactive playground<br />
5. Active developer group<br />
6. Live data from many sources<br />
7. Easy to adopt and simple to use<br />
8. Detailed documentation and examples</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/19/google-charts-toolkit-googles-new-unified-approach-for-creating-dynamic-charts-on-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live blogging Google I/O: Developing with HTML5</title>
		<link>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-developing-with-html5/</link>
		<comments>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-developing-with-html5/#comments</comments>
		<pubDate>Wed, 19 May 2010 22:43:09 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=956</guid>
		<description><![CDATA[Arne Roomann-Kurrik
Mihai Florin Ionescu
http://bit.ly/html5-io2010
Presentation built with HTML5.
Agenda
* The road to HTML5
* HTML5 and Google Chrome
* HTML5 primer and building an HTML5 application
* Demos
* Key take-aways
* Developer resources
* Q&#038;A
1990: First webpage
1994: HTML 2
1995: JavaScript
1995: CSS1
1997: HTML4
1998: CSS 2
1999: XMLHTTP
2002: XmlHttpRequest
2005: Ajax
2009: HTML5
Google Chrome: Where are we now?
* 70+ million users
* 28 stable releases or updates
* 300% [...]]]></description>
			<content:encoded><![CDATA[<p>Arne Roomann-Kurrik<br />
Mihai Florin Ionescu</p>
<p>http://bit.ly/html5-io2010</p>
<p>Presentation built with HTML5.</p>
<p>Agenda</p>
<p>* The road to HTML5<br />
* HTML5 and Google Chrome<br />
* HTML5 primer and building an HTML5 application<br />
* Demos<br />
* Key take-aways<br />
* Developer resources<br />
* Q&#038;A</p>
<p>1990: First webpage<br />
1994: HTML 2<br />
1995: JavaScript<br />
1995: CSS1<br />
1997: HTML4<br />
1998: CSS 2<br />
1999: XMLHTTP<br />
2002: XmlHttpRequest<br />
2005: Ajax<br />
2009: HTML5</p>
<h2>Google Chrome: Where are we now?</h2>
<p>* 70+ million users<br />
* 28 stable releases or updates<br />
* 300% JavaScript performance improvement<br />
* HTML5 support for web application development</p>
<h2>Demo: Chromabrush</h2>
<p>Check out http://chromabrush.com/</p>
<p>* The canvas element: Low level control over rendering (really need to do some work with canvas)<br />
* Multimedia: audio and video (point to webm video)<br />
* Worker threads to avoid browser blocking (definitely need to learn more about this)<br />
* Desktop experience (drag and drop)</p>
<p>Notifications are currently exclusive to Chrome.</p>
<p>http://code.google.com/apis/webfonts/</p>
<p>Nice real world demo of thumbplay music. Not sure if this demo is live yet or if it&#8217;s an internal beta for them. Possibly. Drag and drop is done using jQuery, since native drag and drop isn&#8217;t ready for prime-time yet.</p>
<p>New, HTML5-enabled TweetDeck demo. An internal piece of research. Wasn&#8217;t sure if it was possible.</p>
<p>* HTML5 gaining momentum<br />
* Browser innovation accelerating<br />
* Parity with desktop apps<br />
* Developer community participation essential</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-developing-with-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live blogging Google I/O: Map once, map anywhere: Developing geospatial applications for both desktop and mobile</title>
		<link>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-map-once-map-anywhere-developing-geospatial-applications-for-both-desktop-and-mobile/</link>
		<comments>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-map-once-map-anywhere-developing-geospatial-applications-for-both-desktop-and-mobile/#comments</comments>
		<pubDate>Wed, 19 May 2010 21:37:30 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=954</guid>
		<description><![CDATA[Mano Marks
Chad Killingsworth
Write once, run anywhere
* Mobile is hot
* Desktop is still hote
* Save development time
Agenda
* Overview of Geo APIs
* Different options for mobile
* UI considerations
* Geolocation
* Real world app
Options for Google Maps on Mobile
* Maps API V3 in browser
* iPhone native MapKit
* Android native MapView
* Hybrid native with browser
* Static Maps API
[Need chart for [...]]]></description>
			<content:encoded><![CDATA[<p>Mano Marks<br />
Chad Killingsworth</p>
<p>Write once, run anywhere</p>
<p>* Mobile is hot<br />
* Desktop is still hote<br />
* Save development time</p>
<p>Agenda</p>
<p>* Overview of Geo APIs<br />
* Different options for mobile<br />
* UI considerations<br />
* Geolocation<br />
* Real world app</p>
<h2>Options for Google Maps on Mobile</h2>
<p>* Maps API V3 in browser<br />
* iPhone native MapKit<br />
* Android native MapView<br />
* Hybrid native with browser<br />
* Static Maps API</p>
<p>[Need chart for comparison] V3 is the clear winner.</p>
<p>And now street view:<br />
* HTML5 canvas 2D<br />
* HTML 4<br />
* WebGL</p>
<p>WebGL has the best performance.</p>
<p>Easy to add street view to the map: <code>map.setOptions({ streetViewControl: true });</code></p>
<h2>Browser based maps</h2>
<p>* Full JavaScript browsers<br />
* Access to some phone features<br />
* HTML5<br />
* Write once<br />
* Rapid development<br />
* No App Store/Marketplace process<br />
* No App Store/Marketplace discoverability</p>
<h2>Native APIs</h2>
<p>MapKit on iPhone<br />
MapView on Android<br />
App Store/Marketplace discoverability<br />
* App Store/Marketplace launch process<br />
* Slight performance increase<br />
* Harder development<br />
* No support outside of platform</p>
<h2>Hybrid native apps with embedded browser</h2>
<p>WebView on Andorid<br />
uiWebView in iPhone<br />
Access to additional features of phone<br />
Rapid development of map<br />
Map is write once, but app is write per platform</p>
<h2>Static Maps API</h2>
<p>* Any browser<br />
* Lightweight and fast<br />
* No features of modern APIs<br />
* Write once, run anywhere<br />
** and really, anywhere</p>
<h2>UI considerations</h2>
<p>* Size of screen layout<br />
** Make your &lt;div&gt;s flexible<br />
** Vary your chrome by browser or screen size<br />
* Touch events<br />
* Native vs browser look and feel<br />
** iUi</p>
<h2>Geolocation</h2>
<p>* HTML5<br />
** Device provides location<br />
** Mobile often gives GPS location<br />
** Desktop browser gives IP or wifi</p>
<p>* IP-based<br />
** IP lookup<br />
** Coarse<br />
** Google Ajax API ClientLocation (or other provider)</p>
<p>[Demo of HTML5 geolocation]</p>
<h2>Campus Map demo</h2>
<p>* Wide variety of audiences using maps<br />
* Visitors and guests will visit the web site<br />
* Frequent users prefer the convenience of an application<br />
* Only enough resources to maintain one code base</p>
<p>* Shared datasets with version 2 map<br />
* Early on- lack of features<br />
* User interface with small, touch-based screen</p>
<h3>Hybrid application</h3>
<p>* Performance concerns (with proper optimizations, not a great concern)<br />
* It felt like &#0034;cheating&#0034;</p>
<h2>Optimizations</h2>
<p>* Use KML layers for complicated data (for panning)<br />
* Compress JavaScript (Closure-Compiler)<br />
* Delay loading the maps API so as not to block page rendering (use the boot loader and then dynamically add script tag to page)<br />
* Use Google page speed</p>
<p>View uncompressed source of University of Missouri campus map</p>
<p>Q:<br />
A: Pinch-to-zoom only works on the iPhone, because that&#8217;s the only browser that exposes those events to JavaScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-map-once-map-anywhere-developing-geospatial-applications-for-both-desktop-and-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live blogging Google I/O: Beyond JavaScript: programming the web with native code</title>
		<link>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-beyond-javascript-programming-the-web-with-native-code/</link>
		<comments>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-beyond-javascript-programming-the-web-with-native-code/#comments</comments>
		<pubDate>Wed, 19 May 2010 19:59:55 +0000</pubDate>
		<dc:creator>Jeffrey Barke</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://themechanism.com/blog/?p=950</guid>
		<description><![CDATA[David Springer
Ian Lewis
http://en.wikipedia.org/wiki/Google_Native_Client
http://code.google.com/p/nativeclient/
Agenda
[]
Non-agenda
* Internals and technical details
* Security model
Talked about this last year.
Native Client = NaCl (na-kkle)
Overview: What is NaCl
* A portable system for verifying and executing untrusted native code in the browser.
** High performance like C++
** Safe and portable like JS
* A runtime sandbox
** &#8220;Virtual Mini-POSIX&#8221;
** Standard operating system services
*** Kernel (Chrome)
*** Window manager
*** [...]]]></description>
			<content:encoded><![CDATA[<p>David Springer<br />
Ian Lewis</p>
<p>http://en.wikipedia.org/wiki/Google_Native_Client</p>
<p>http://code.google.com/p/nativeclient/</p>
<p>Agenda</p>
<p>[]</p>
<p>Non-agenda</p>
<p>* Internals and technical details<br />
* Security model</p>
<p>Talked about this last year.</p>
<p>Native Client = NaCl (na-kkle)</p>
<p>Overview: What is NaCl</p>
<p>* A portable system for verifying and executing untrusted native code in the browser.<br />
** High performance like C++<br />
** Safe and portable like JS<br />
* A runtime sandbox<br />
** &#8220;Virtual Mini-POSIX&#8221;<br />
** Standard operating system services<br />
*** Kernel (Chrome)<br />
*** Window manager<br />
*** Media layer (Pepper)<br />
** Identical on every supported platform (Mac, Windows, Linux)</p>
<p>NaCl: What is it good for?</p>
<p>* Port desktop applications to the web<br />
** Zero install<br />
** Native performance<br />
* Enchance web apps with&#8230;<br />
** Existing C/C++ libraries (libcrypt, CGAL, etc)<br />
** New high-performance compiled code<br />
* Sandbox existing plugin code<br />
** Stop asking users to trust your code</p>
<h2>Lunch ain&#8217;t free</h2>
<p>* Must compile <strong>verifiable</strong> code<br />
** Minor performance penalty<br />
** Generally large executables<br />
* Some *nix syscalls are unavailable<br />
** Process creation<br />
** Direct network/file access<br />
* Still some rough edges</p>
<h2>How does this make my life better?</h2>
<p>* Native performance<br />
* Platform-independent multimedia<br />
* Your choice of language<br />
* Low-level system services<br />
* The end of: The &#8220;do you trust this publisher&#8221; confirm installation box. Asks user to make an impossible choice.</p>
<h2>Demo: unity</h2>
<p>Unity game Lego Starwars. Four guys ported game in four weeks. Not super difficult thing to do.</p>
<h2>The NaCl SDK</h2>
<h3>SDK goodies</h3>
<p>* C/C++ toolchain<br />
* Standard GNU libraries<br />
* &#8220;Pepper&#8221;<br />
** NPAPI-like interface<br />
** Audio/video<br />
** OpenGL ES 2.0<br />
* JavaScript interop<br />
* Sample code and build scripts</p>
<h3>Using the SDK</h3>
<p>* Build with standard GNU toolchain<br />
* Run in web browser<br />
** Server required<br />
* Debug with GDB-compatible debugger<br />
** via GDB stub</p>
<h2>Demo</h2>
<h3>Anatomy of a NaCl application</h3>
<p>(Diagram)</p>
<ol>
<li>Install the SDK</li>
<li>Organize project directories and files:
<ul>
<li>application</li>
<li>nacl</li>
<li>c_salt</li>
</ul>
</li>
</ol>
<p>The HTML and CSS is straightforward.</p>
<p><!--Add onclick handlers to buttons, call JavaScript. Nothing new here.--><br />
<!-- wow; i don't think i'll be able to do this. Seems intriguing, but kind of like Gears. What a failed investment that was. --></p>
<h2>Coming attractions</h2>
<p>* Full debugger support<br />
** GDB<br />
** Visual Studio<br />
* IDE plugins<br />
** Eclipse<br />
** Visual Studio<br />
** Xcode<br />
* Easy to use interop library<br />
* P-NaCl (portable NaCl) (pinnacle)</p>
<p>nativeclient.googlecode.com<br />
nativeclient-sdk.google.com.com<br />
native-client-discuss@google.com</p>
]]></content:encoded>
			<wfw:commentRss>http://themechanism.com/blog/2010/05/19/live-blogging-google-io-beyond-javascript-programming-the-web-with-native-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
