




if (typeof(disqus_iframe_css) == 'undefined') {
	disqus_iframe_css = '';
}
if (typeof(disqus_def_name) == 'undefined') {
	disqus_def_name = '';
}
if (typeof(disqus_def_email) == 'undefined') {
	disqus_def_email = '';
}
if (typeof(disqus_skip_auth) == 'undefined') {
	disqus_skip_auth = false;
}
if (typeof(disqus_default_text) == 'undefined') {
	disqus_default_text = 'Type your comment here.';
}

(function(){
	
	var ie = document.uniqueID
		&& document.compatMode
		&& !window.XMLHttpRequest
		&& document.execCommand ;

	try {
		if(!!ie) {
			document.execCommand("BackgroundImageCache", false, true);
		}
	} catch(e) {};
})();

var Dsq = new function() {
	this.container = document.getElementById('dsq-content');
	this.jsonData = {"reactions": [{"body": "Ray Ozzie delivers with Live Mesh Microsoft\u2019s fans are delivered to the promised land. For three years now I\u2019ve wondered \u201cwhat is Ray Ozzie up to?\u201d And with this announcement you see just why he\u2019s Microsoft\u2019s CTO. Yeah, there are about 100 sma", "author_name": "Christophe", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/04/22/ray-ozzie-delivers-with-live-mesh/", "id": 1066552, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/30b5b9b6-7a0e-d7de-f5d5-3f3b39772050#0ce795ee-1368-11dd-a0d0-003048343a40", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/krikke/picture?size=large", "author_url": "", "date_created": "1 year ago", "retweets": []}, {"body": "What Mesh is today is mostly some end user functionality that looks like Plaxo Pulse done right, but if you stop right there and either get excited or dismiss it, you\u2019ll miss the point entirely. Source: Scobleizer", "author_name": "Jemima Kiss", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/04/22/ray-ozzie-delivers-with-live-mesh/", "id": 1066553, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/fbecd8d8-cc99-5f8d-8333-a8d1f7cfd812#4379a1d0-1163-11dd-80f0-003048343a40", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/jemimakiss/picture?size=large", "author_url": "", "date_created": "1 year ago", "retweets": []}], "has_more_reactions": false, "users": {"6566f1558fa9b77ce2f3f7605c5aa59e": {"username": "Gubbi", "tumblr": "", "display_name": "Gubbi", "url": "http://disqus.com/guest/6566f1558fa9b77ce2f3f7605c5aa59e/", "registered": false, "linkedin": "", "blog": "http://blogs.vinuth.com/la-gubya", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "13f93ce1e022ce7016613acefb30baa0": {"username": "James", "tumblr": "", "display_name": "James", "url": "http://disqus.com/guest/13f93ce1e022ce7016613acefb30baa0/", "registered": false, "linkedin": "", "blog": "http://frem.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "70a3fa2b5cef1685f96ed038a63af2e4": {"username": "Jerome Paradis", "tumblr": "", "display_name": "Jerome Paradis", "url": "http://disqus.com/guest/70a3fa2b5cef1685f96ed038a63af2e4/", "registered": false, "linkedin": "", "blog": "http://blog.jeromeparadis.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/1468/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cfeea633563d58f011c5aebb006ddaf9": {"username": "Epic", "tumblr": "", "display_name": "Epic", "url": "http://disqus.com/guest/cfeea633563d58f011c5aebb006ddaf9/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "aff533acf9b173682e713fb1cb290a94": {"username": "scott", "tumblr": "", "display_name": "scott", "url": "http://disqus.com/guest/aff533acf9b173682e713fb1cb290a94/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d850dbe3cc41ecbabd09a4534236dd48": {"username": "Brad", "tumblr": "", "display_name": "Brad", "url": "http://disqus.com/guest/d850dbe3cc41ecbabd09a4534236dd48/", "registered": false, "linkedin": "", "blog": "http://whijo.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "490d9b37fe894c545ff3210ee810ac7e": {"username": "Tom", "tumblr": "", "display_name": "Tom", "url": "http://disqus.com/guest/490d9b37fe894c545ff3210ee810ac7e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2f357e9ee4d75cf12092bf9f23b13bae": {"username": "Chris Brogan...", "tumblr": "", "display_name": "Chris Brogan...", "url": "http://disqus.com/guest/2f357e9ee4d75cf12092bf9f23b13bae/", "registered": false, "linkedin": "", "blog": "http://chrisbrogan.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ac612e5c0825dd8bc9bdc634e632e166": {"username": "Mike Galos", "tumblr": "", "display_name": "Mike Galos", "url": "http://disqus.com/guest/ac612e5c0825dd8bc9bdc634e632e166/", "registered": false, "linkedin": "", "blog": "http://mikegalos.spaces.live.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6b5bc9d861d760078250bbf0cdc993eb": {"username": "ilde", "tumblr": "", "display_name": "ilde", "url": "http://disqus.com/guest/6b5bc9d861d760078250bbf0cdc993eb/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "512c80783da4be86dd04772882583401": {"username": "Jon", "tumblr": "", "display_name": "Jon", "url": "http://disqus.com/guest/512c80783da4be86dd04772882583401/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3776abd92e2634b57437f6b1029b2686": {"username": "eduardo", "tumblr": "", "display_name": "eduardo", "url": "http://disqus.com/guest/3776abd92e2634b57437f6b1029b2686/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4d742520ff6dc46fb3b51247910c8e99": {"username": "eduardo", "tumblr": "", "display_name": "eduardo", "url": "http://disqus.com/guest/4d742520ff6dc46fb3b51247910c8e99/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1efe17fdbe3f4c0b1237606388ed1a0c": {"username": "redfish", "tumblr": "", "display_name": "redfish", "url": "http://disqus.com/guest/1efe17fdbe3f4c0b1237606388ed1a0c/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fbe4750fa71293f354679e7cbac6df1b": {"username": "claymeadow", "tumblr": "", "display_name": "claymeadow", "url": "http://disqus.com/guest/fbe4750fa71293f354679e7cbac6df1b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2e8a8696351166c63ac462f780ec3b5c": {"username": "Mike Sax", "tumblr": "", "display_name": "Mike Sax", "url": "http://disqus.com/guest/2e8a8696351166c63ac462f780ec3b5c/", "registered": false, "linkedin": "", "blog": "http://www.sax.net/live", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/85/7494/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6677e303d879a19e00be9c5f01facb21": {"username": "Tim Harris", "tumblr": "", "display_name": "Tim Harris", "url": "http://disqus.com/guest/6677e303d879a19e00be9c5f01facb21/", "registered": false, "linkedin": "", "blog": "http://www.timharrisblog.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8304a1ab13217b62afe53230982b1e1e": {"username": "SucksToBeMS", "tumblr": "", "display_name": "SucksToBeMS", "url": "http://disqus.com/guest/8304a1ab13217b62afe53230982b1e1e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fa601ee25432c22cb266c7ec1ec983bd": {"username": "Ken Stewart", "tumblr": "", "display_name": "Ken Stewart", "url": "http://disqus.com/guest/fa601ee25432c22cb266c7ec1ec983bd/", "registered": false, "linkedin": "", "blog": "http://www.changeforge.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7f6291e8344b594235e57b843fc05d9b": {"username": "Christopher Coulter", "tumblr": "", "display_name": "Christopher Coulter", "url": "http://disqus.com/guest/7f6291e8344b594235e57b843fc05d9b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "a51c77aba2a0f90b2e5ec07565d59271": {"username": "Steve", "tumblr": "", "display_name": "Steve", "url": "http://disqus.com/guest/a51c77aba2a0f90b2e5ec07565d59271/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "464310a7efac179b26a317f82734932a": {"username": "Jason L", "tumblr": "", "display_name": "Jason L", "url": "http://disqus.com/guest/464310a7efac179b26a317f82734932a/", "registered": false, "linkedin": "", "blog": "http://www.prapta.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f0d7ffb944fa93d13e616f5e27b9de8f": {"username": "Samiq", "tumblr": "", "display_name": "Samiq", "url": "http://disqus.com/guest/f0d7ffb944fa93d13e616f5e27b9de8f/", "registered": false, "linkedin": "", "blog": "http://bits.samiq.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e8a08b2b2efff7daf0db8e851ab41186": {"username": "Alex Hammer", "tumblr": "", "display_name": "Alex Hammer", "url": "http://disqus.com/guest/e8a08b2b2efff7daf0db8e851ab41186/", "registered": false, "linkedin": "", "blog": "http://techleaders20.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1d1377c6457694139566c068c78d3111": {"username": "David Gerbino", "tumblr": "", "display_name": "David Gerbino", "url": "http://disqus.com/guest/1d1377c6457694139566c068c78d3111/", "registered": false, "linkedin": "", "blog": "http://twitter.com/dmgerbino", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fd620d30ce856c99eeac7d190bbd4111": {"username": "Mark Ashton", "tumblr": "", "display_name": "Mark Ashton", "url": "http://disqus.com/guest/fd620d30ce856c99eeac7d190bbd4111/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "559043d3329abf30a09d58caf0aa607e": {"username": "Iarfhlaith Kelly", "tumblr": "", "display_name": "Iarfhlaith Kelly", "url": "http://disqus.com/guest/559043d3329abf30a09d58caf0aa607e/", "registered": false, "linkedin": "", "blog": "http://www.iarfhlaith.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0e746190743aebfb9dcc11ca5487b640": {"username": "Toph", "tumblr": "", "display_name": "Toph", "url": "http://disqus.com/guest/0e746190743aebfb9dcc11ca5487b640/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "aba6e77dd14a6ba0fc2e7e5f07db3908": {"username": "Joe", "tumblr": "", "display_name": "Joe", "url": "http://disqus.com/guest/aba6e77dd14a6ba0fc2e7e5f07db3908/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3b6d62d220d4d804d6998a2a7647a409": {"username": "Dirk Stevens", "tumblr": "", "display_name": "Dirk Stevens", "url": "http://disqus.com/guest/3b6d62d220d4d804d6998a2a7647a409/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "021f78e9313029a974804f9d4f56d386": {"username": "Susan Beebe", "tumblr": "", "display_name": "Susan Beebe", "url": "http://disqus.com/guest/021f78e9313029a974804f9d4f56d386/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/48/3975/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7c41f61fee163dfa06f3de961cbc9a47": {"username": "Yaintgo Nagettit", "tumblr": "", "display_name": "Yaintgo Nagettit", "url": "http://disqus.com/guest/7c41f61fee163dfa06f3de961cbc9a47/", "registered": false, "linkedin": "", "blog": "http://slinfodex.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6e40f98acdf2ac08487b049ab648b45f": {"username": "Don Campbell", "tumblr": "", "display_name": "Don Campbell", "url": "http://disqus.com/guest/6e40f98acdf2ac08487b049ab648b45f/", "registered": false, "linkedin": "", "blog": "http://expand2web.com/blog", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/15/2682/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8060ef0b5251a640ef51de7ffb54c9de": {"username": "Karen", "tumblr": "", "display_name": "Karen", "url": "http://disqus.com/guest/8060ef0b5251a640ef51de7ffb54c9de/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "44c5450cb486d4e4e5b80ef7a01e7017": {"username": "Tom", "tumblr": "", "display_name": "Tom", "url": "http://disqus.com/guest/44c5450cb486d4e4e5b80ef7a01e7017/", "registered": false, "linkedin": "", "blog": "http://www.tomstechblog.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "77f1ec1d7803c1475f9d0e63d9118a4d": {"username": "Ken Nicholson", "tumblr": "", "display_name": "Ken Nicholson", "url": "http://disqus.com/guest/77f1ec1d7803c1475f9d0e63d9118a4d/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "06b07043fd24becf9191e474a55b6b8f": {"username": "Frank Daley", "tumblr": "", "display_name": "Frank Daley", "url": "http://disqus.com/guest/06b07043fd24becf9191e474a55b6b8f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "85c7685fea2e03871419ae32dd25fe19": {"username": "Matt", "tumblr": "", "display_name": "Matt", "url": "http://disqus.com/guest/85c7685fea2e03871419ae32dd25fe19/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6f968cd645f92ffb52fa29e47205d157": {"username": "Mr_Simple", "tumblr": "", "display_name": "Mr_Simple", "url": "http://disqus.com/guest/6f968cd645f92ffb52fa29e47205d157/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2e631426dadcebf7a8d2898dd13a2ecf": {"username": "Sprague Dawley", "tumblr": "", "display_name": "Sprague Dawley", "url": "http://disqus.com/guest/2e631426dadcebf7a8d2898dd13a2ecf/", "registered": false, "linkedin": "", "blog": "http://www.ratdiary.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b1088dbd877c2d7d33e6b3b63ee38081": {"username": "Prokofy Neva", "tumblr": "", "display_name": "Prokofy Neva", "url": "http://disqus.com/guest/b1088dbd877c2d7d33e6b3b63ee38081/", "registered": false, "linkedin": "", "blog": "http://secondthoughts.typepad.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6d21b6678f279c5f0f5c2887349b9322": {"username": "therealmccrea", "tumblr": "", "display_name": "therealmccrea", "url": "http://disqus.com/guest/6d21b6678f279c5f0f5c2887349b9322/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "81bb469b2b63a7ee6b47e71ff7483431": {"username": "Edwin Khodabakchian", "tumblr": "", "display_name": "Edwin Khodabakchian", "url": "http://disqus.com/guest/81bb469b2b63a7ee6b47e71ff7483431/", "registered": false, "linkedin": "", "blog": "http://edwink.devhd.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6f94db569e38a9f8aea1b6446590951f": {"username": "Steven", "tumblr": "", "display_name": "Steven", "url": "http://disqus.com/guest/6f94db569e38a9f8aea1b6446590951f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b873b928f96bbcd0b6badcf65bf95208": {"username": "ValentineS", "tumblr": "", "display_name": "ValentineS", "url": "http://disqus.com/guest/b873b928f96bbcd0b6badcf65bf95208/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d4ee7363587220b999fc37c3b67376da": {"username": "Steve", "tumblr": "", "display_name": "Steve", "url": "http://disqus.com/guest/d4ee7363587220b999fc37c3b67376da/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e8ed395e19ba6068b7f8e1d91b051d40": {"username": "Kris Fuehr", "tumblr": "", "display_name": "Kris Fuehr", "url": "http://disqus.com/guest/e8ed395e19ba6068b7f8e1d91b051d40/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d3ea5ee6736f486f879d4c80695b2223": {"username": "met", "tumblr": "", "display_name": "met", "url": "http://disqus.com/guest/d3ea5ee6736f486f879d4c80695b2223/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b23427ecc65c8cedf89c0e365b980838": {"username": "Shakir Razak", "tumblr": "", "display_name": "Shakir Razak", "url": "http://disqus.com/guest/b23427ecc65c8cedf89c0e365b980838/", "registered": false, "linkedin": "", "blog": "http://www.sumo.tv/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b4c3ffb5bf1dc58676ee4d427cb250da": {"username": "Freeman", "tumblr": "", "display_name": "Freeman", "url": "http://disqus.com/guest/b4c3ffb5bf1dc58676ee4d427cb250da/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d8937e0e26cd344bd8337fed43bf00d5": {"username": "Peter Parker", "tumblr": "", "display_name": "Peter Parker", "url": "http://disqus.com/guest/d8937e0e26cd344bd8337fed43bf00d5/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "67ddf598c32d0ae929852af89fa4b272": {"username": "Karim", "tumblr": "", "display_name": "Karim", "url": "http://disqus.com/guest/67ddf598c32d0ae929852af89fa4b272/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "bd08ad72ab7b469a15d3ba45a5a85626": {"username": "keith", "tumblr": "", "display_name": "keith", "url": "http://disqus.com/guest/bd08ad72ab7b469a15d3ba45a5a85626/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "39314b9561ab4752a37c3370fbf6ee5d": {"username": "Jason Bogovich", "tumblr": "", "display_name": "Jason Bogovich", "url": "http://disqus.com/guest/39314b9561ab4752a37c3370fbf6ee5d/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "170fb0e38ac402e5ce7b10877b922a31": {"username": "arnix", "tumblr": "", "display_name": "arnix", "url": "http://disqus.com/guest/170fb0e38ac402e5ce7b10877b922a31/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "macbeach": {"username": "macbeach", "tumblr": "", "display_name": "macbeach", "url": "http://disqus.com/macbeach/", "registered": true, "linkedin": "", "blog": "http://blog.macb.net", "remote_domain": null, "points": 4, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/130/4404/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_11:53:49", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": "locked"}, "realtime_paused": false, "posts": {"9704064": {"up_voted": false, "ip": "", "has_replies": false, "message": "Does this overlap at all with the home server?  If I can store all my photos, docs, etc. in the cloud, and still get remote access...why do I need home server?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_10:43:41", "killed": false, "user_key": "85c7685fea2e03871419ae32dd25fe19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704065": {"up_voted": false, "ip": "", "has_replies": false, "message": "live mesh sounds like the right idea, although joe-jane six packer may give it a head scratch, head tilt, and then yawn after about 2 seconds, isn't that how it always is anyways, since it's complicated.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_11:41:43", "killed": false, "user_key": "fbe4750fa71293f354679e7cbac6df1b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704066": {"up_voted": false, "ip": "", "has_replies": false, "message": "Developers will get excited, then nobody will use it.<br>Apple will come and make it usable, beautiful and portable.<br>It is not the idea that counts, it's the implementation.<br>And we all know M$ always sucks at that!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_11:42:42", "killed": false, "user_key": "8304a1ab13217b62afe53230982b1e1e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704067": {"up_voted": false, "ip": "", "has_replies": false, "message": "Tell me the reasons for someone wanting to run apps locally and how Mesh helps there.<br><br>A browser only world doesn't have to reduce local machines to thin client. Browser can be the single place when on-the-cloud access and collaboration is required. Here users are free to store and collaborate anywhere and not put everything in a single space. Also most services are free now, what is free storage of 5GB worth?<br><br>So I don't see it providing better platform for online services like flickr, or youtube for content sharing. Nor is it better for collaboration than GTalk, Google docs, Zoho, twitter, etc.,<br><br>Tell me how Mesh will revolutionize these services?<br><br>There is another point which I don't see mentioned. Will I have to install Mesh enabled apps separately on all my client devices? Of course I'll have to. So, whats so better about it?<br><br>I still don't get it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_11:59:48", "killed": false, "user_key": "6566f1558fa9b77ce2f3f7605c5aa59e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704068": {"up_voted": false, "ip": "", "has_replies": false, "message": "I am afraid \"suckstobems\" is right. Microsoft has the ideas. But its Apple and others who get the engineering right. I think its partly because the others start out with their ideas on a smaller scale.<br>The demo on <a href=\"http://on10.net\" rel=\"nofollow\">on10.net</a> showed the remote desktop to be slow and they said that it will be slower on the web interface. Its small things like these which will put off an every day user.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_12:17:33", "killed": false, "user_key": "d3ea5ee6736f486f879d4c80695b2223", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704069": {"up_voted": false, "ip": "", "has_replies": false, "message": "I disagree with anyone saying Mesh \"bets against the cloud.\" I think it's as much about bringing the web outside of the browser as anything else. Apps like Office still crush anything being done in-browser in almost every category but connectedness (and maybe simplicity). I see no reason why being \"connected\" (or even \"in the cloud\") must mean staying inside the browser.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_12:26:12", "killed": false, "user_key": "0e746190743aebfb9dcc11ca5487b640", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704070": {"up_voted": false, "ip": "", "has_replies": false, "message": "35 and 43 hit most of the high points.<br><br>Ironic this is, only a day after MS announced  the discontinuance of DRM music validation.<br><br>MS has obviously gotten sensitive to the public perception that they are not open enough, don't play well with others, etc.<br><br>However so far, their response has only been empty promises.  Yes, this will work with OS X and Linux (some day) just as Silverlight will.  Only when reporters ask for status on those efforts MS makes it clear that they are being handled by third parties with whom MS developers have no apparent contact.<br><br>I've asked this time and time again with respect to such promises:  Wouldn't it be easier to build compatibility in from the very beginning?  If you are really serious about providing such compatibility why would you go back an add it later after writing millions of lines of code?  Why would you leave such efforts up to unpaid third parties? (thinking .net and mono specifically here).  These claims don't really pass any kind of smell test.<br><br>Actions speak louder than words Microsoft, and so far there is just no \"there\" there.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_12:56:51", "killed": false, "user_key": "macbeach", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704071": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mark Ashton: \"if you want to live in a browser only world you would have loved the days of the IBM Mainframe or mini-computers - its\u2019 the same thing. All of the data and processing happening on centralized machines, connecting up via a dumb terminal. The Web browser is the \u201cmodern\u201d equivalent of a dumb terminal\".<br><br>No, because in the old days you depended on IT to write or purchase your apps, but with the Web you have countless individuals and organizations putting them up for free. If you are unaware of this difference and all the advantages it brings, then you are completely, and I do mean completely, out of touch with reality.<br><br>\"Mesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN.\"<br><br>Google Gears already does this.<br>`<br>Would someone please explain again what Mesh is supposed to do that can't be done already, or with a few additions to what Web 2.0 is already doing?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_14:49:57", "killed": false, "user_key": "4d742520ff6dc46fb3b51247910c8e99", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704072": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ohhh my head is spinning.<br><br>Let's review this all again in 3 years to see if it's the real deal, or just another API to learn..<br><br>Seriously, do we need another layer of complexity or will Google's App Engine or Amazon's EC2 / S3 be fine?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_15:39:27", "killed": false, "user_key": "6f968cd645f92ffb52fa29e47205d157", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704073": {"up_voted": false, "ip": "", "has_replies": false, "message": "Lets see the top 4 P2P applications of all times are <a href=\"http://www.faroo.com\" rel=\"nofollow\">Faroo P2P Search</a>, <a href=\"http://mermaid.metaaso.com\" rel=\"nofollow\">MetaASO Mermaid Worldwide Multimedia Broadcast Systems</a>, <a href=\"http://www.emule.com\" rel=\"nofollow\">Emule P2P file sharing</a>, <a href=\"http://www.azureus.com\" rel=\"nofollow\"> Azureus BitTorrent P2P File Sharing</a><br><br>None of these applications can be developed using the Live Mesh. Live Mesh is not open enough to allow the Open Source adopters to hook onto it. It is and will always be a closed source propeitary solution which will work only to further Microsoft's commercial interests. What happened to the Free Software revolution?<br><br>Live Mesh has a very heavy infrastructure behind it but it fails on so many counts that one cannot even think that it will succeed on the global scale. The problem lies in attempting to design a universal generic solution for everything and then failing miserably on all counts except some.<br><br>As a developer I fail to see how I could use this?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-06-29_13:04:14", "killed": false, "user_key": "d8937e0e26cd344bd8337fed43bf00d5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703990": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>you\u2019re already stuck in the world of using Web-based apps</i><br><br>Yeah, like Microsoft 'Albany', Microsoft Exchange Online and Microsoft SharePoint Online, Dynamics CRM Online. Pity that.<br><br>But eh? The \"web apps\" would be news to me. Web 2.0 crashy clunky mash-ups, that's the Bay Area and Scoble and Co. Most of my \"computing\" is done in front of Avid \"terminals\", hardly web, and not even close to \"desktop\". So I am already beyond your boxed-in character-scenario definitions. But a philosophical argument over the failing merits of markup as a platform, doesn't automatically mean there is any cloud-sync demand, let alone a vaguely-defined non-shipping raw-concept consumer-targeted marketing-send-up. Now Server underutilization, off the charts.<br><br>And funny, I get lots of \"acceleration\" on OLD hardware, with \"faster/more interactive\" applications, with \"local file system access\", after installing Fedora. Thanks for the tip.<br><br>The Win32 to .Net migration is a microview, look at the macro, i.e. where is .NET in comparison to the WHOLE market itself.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-25_17:52:23", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703991": {"up_voted": false, "ip": "", "has_replies": false, "message": "Coulter, you don't get it. And your holier than thou BS is tiresome. What does Exchange Online have to do with Web apps? Nothing. Exchange is a native Windows app, written in C++, delivered over the wire, mostly to users who will be using Outlook, not OWA. You may spend most of your time in front of Avid \"terminals\" doesn't really matter much does it? There are about 5000 of you. Go have fun in your dark office.<br><br>I certainly haven't argued that \"markup as a platform' doesn't have merit. It does, for delivering a half decent experience of delivernig data to my browser and a bit of interactivity. But if I want to do anything interesting, markup doesn't cut it.<br><br>If you're referring to MESH as the \"vaguely-defined non-shipping raw-concept consumer-targeted marketing-send-up\" then (1) you're way overly dependent on dashes and (2) lots of good ideas weren't immediately understood by the average Chris...I mean Joe.<br><br>The fact that you get \"lots of acceleration on OLD hardware\" is just fine and dandy. I made no refernce to new or old hardware. I just like to use the hardware I have for something other than running a Web browser.<br><br>Lastly, what the hell does your last paragraph even mean? Why don't you explain the \"macroview\" and compare .NET to the whole market. Go ahead. I'm waiting.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-26_01:39:04", "killed": false, "user_key": "fd620d30ce856c99eeac7d190bbd4111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703992": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Developers will get excited, then nobody will use it.<br>Apple will come and make it usable, beautiful and portable.<br>It is not the idea that counts, it\u2019s the implementation.<br>And we all know M$ always sucks at that!\"<br><br>Because of your last sentence I'm not sure whether you're facetious or not.. but I think Media Center is more usable, beautiful and portable than Front Row. The Zune UI is also nicer than the iPod UI.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-26_15:34:06", "killed": false, "user_key": "1efe17fdbe3f4c0b1237606388ed1a0c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703993": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>And your holier than thou BS is tiresome.</i><br><br>Hey, I agree. Tech rot bores even me. But if I had a blog, then my \"holier than thou BS\" would be a valuable conversation? Heck, every blogger slash pundit out there operates on \"holier than thou BS\", and that's the very fuel Scobleizer runs on, it's just the Bay-Areaish \"holier than thou BS\". My \"holier than thou BS\" runs more 'will it play in Peoriaish'. Take as will.<br><br><i>you\u2019re way overly dependent on dashes</i><br><br>Beyond guilty as charged, it works in Final Drafty dialogue-mode however. :)<br><br>But I wouldn't be so quick to knock those Average Joe's, as they are CONSUMERS, the Mesh target market. But the classic \"you don't get it\" is circular logic at it's best, like a conspiracy theory where lack of evidence only proves it further, \"you don't get it\" is a debate killer. And those \"good ideas\", are little more than wishful thinking at this point. Possible, but not yet proven. And \"good ideas\" are nothing without \"good implementations\".<br><br><i>Why don\u2019t you explain the \u201cmacroview\u201d and compare .NET to the whole market.</i><br><br>You expecting a book? Not taking that bait. It's your argument, just saying comparing Win32/.Net ISP markets, says nothing about .NET Framework penetration or the scope of Java Enterprise developments etc. etc.<br><br><i>doesn\u2019t really matter much does it?</i><br><br>Considering that without those 5,000 you wouldn't have half of Hollywood and hardly any of Burbank, I'd say it matters. ;) Hollywood does have a lot of Final Cutters, but Burbank is almost all (still) Avid. And in true blogger-elitist-dogma, it's not the SIZE of the audience, rather the INFLUENCE.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-26_16:51:51", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703994": {"up_voted": false, "ip": "", "has_replies": false, "message": "It comes from microsoft? Fuchi. No, thanks.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-24_04:36:13", "killed": false, "user_key": "6b5bc9d861d760078250bbf0cdc993eb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703995": {"up_voted": false, "ip": "", "has_replies": false, "message": "ok, so now I have had a very good long hard look at this Mesh thing.<br><br>My conclusion is that unless they make it easier and more transparent to use it will remain a technology only used by the 10% people that make up the Geek World... people like Scoble etc.<br><br>I think the real problem with most things Microsoft makes these days is that they look like they where build by engineers for engineers. The Channel 10 presentation is the perfect example. I seriously doubt that Microsoft in it's current way of doing things will be able to make this work easily for the common punter.<br><br>Apple has tried something similar on a much much smaller scale with their integration of .Mac and Leopard. It's easy to use and seamless in that environment yet not many people really seem to make heavy use of it.<br><br>I think the bottom line is this is another attempt by Microsoft to cling to their Windows dominance, to make it relevant in a Web only world. I doubt there will be much support for devices or Operating systems not made by Microsoft. It also don't think this will be very useful to people without two way broadband connection and I don't think this will be easy to use...<br><br>... in a nutshell this will be a real uphill battle.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-24_04:19:27", "killed": false, "user_key": "490d9b37fe894c545ff3210ee810ac7e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703996": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well, 24 hours later, and the collective response (minus the MVP sugary Fun-Dips) can be summed up thusly: \"Huh?\"<br><br>Vague, mushy-lockbox vaporware, all without a sexy marketing hook. When you are pitching something Consumerish, and even developers are having a hard time wrapping it up, you know it's doomed (well, the mere fact that Scoble is excited, is enough of a short-sell signal to me, but your mileage may vary).<br><br>Over-hyped spin yet under a Sinofskyish lock-and-key, contradictions can be best-friends.<br><br>WhydoIfeellikewehavebeenherebefore? Failstorm, Part Deuce, hey, great idea, Mesh needs a \"Passport\" Digital ID system. Only thing missing is trotting out Explainer-in-Chief Charles Fitzgerald to face the press and industry machine-gun fire.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-24_03:54:51", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703997": {"up_voted": false, "ip": "", "has_replies": false, "message": "EPIC FAILURE!!!<br><br>EPIC FAILURE!!!<br><br>EPIC FAILURE!!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-24_10:57:50", "killed": false, "user_key": "cfeea633563d58f011c5aebb006ddaf9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703998": {"up_voted": false, "ip": "", "has_replies": false, "message": "This appears to be stuff we already have from other companies, but in an alpha stage, not as pleasant, and kind of mushed together in some type of anamorphic glob.<br><br>An I agree with so many others, w/o universal support, there is no way any of it is making it into any of my networks.  I run Multiple flavors of MS Windows and Linux, and everything we do also has to play well with Macs.  Someone give me a nudge when this works with all three.<br>Until then, I'll continue to work in the real world w/o rose colored glasses.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-24_11:04:08", "killed": false, "user_key": "b873b928f96bbcd0b6badcf65bf95208", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9703999": {"up_voted": false, "ip": "", "has_replies": false, "message": "It would be nice if they solved the problem of synching one's personal media.  If I purchase a downloaded movie, it would be nice to have it appear on all my computing devices.  But this is going to be tricky as I think MCE's TV recording files are encrypted for playback on a particular machine and not portable to other machines.  Ideally your downloads would be tied to your Live Mesh identity and then any new device added to your mesh would automatically get your content library.<br><br>Then again, if a user has a 1TB library of HD Gilligan's Island episodes, they don't necessarily want all of it synched everywhere.  And portable devices don't need to carry around Christmas music in the summer, so there needs to be an AI-based priority and rules system that helps sync only the content the user wants.<br><br>There are a lot of questions about sharing Live Mesh content that will arise.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_16:04:49", "killed": false, "user_key": "77f1ec1d7803c1475f9d0e63d9118a4d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704000": {"up_voted": false, "ip": "", "has_replies": false, "message": "@ Christopher Coulter.<br>You're adding ZERO to the discussion.  The fact is that no matter what Microsoft did, you'd belittle it and bash it, and everyone knows that.  That's why your \"input\" is so tiresome, because it's based on your hatred of Microsoft and nothing else.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-24_16:59:00", "killed": false, "user_key": "8060ef0b5251a640ef51de7ffb54c9de", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704001": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow!!!  Something new and ionniovative from MicroShaft, Inc...  Oh, wait... My bad, it's just another rehash of stuff that other people have done before them - typical of Microcrash's modus operandi - see what everyone else has done and implement a half-assed version of it in their unsecure operating system.  I honestly can't wait to see how the script kiddies and spammers exploit the hell out of this!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_16:21:13", "killed": false, "user_key": "7c41f61fee163dfa06f3de961cbc9a47", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704002": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, great links. I'm looking forward to reading through this over the next few days, and probably weeks to come.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_23:59:02", "killed": false, "user_key": "fa601ee25432c22cb266c7ec1ec983bd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704003": {"up_voted": false, "ip": "", "has_replies": false, "message": "Gubbi--<br><br>Hm. You make some good points--the browser has its advantages. And yes, it's a little annoying having to download the client to facilitate all this. But if it's truly fleshed out as a platform, that should be pretty insignificant in the long run. Sometimes the power and flexibility of offline apps outweights the convenience of doing it in-browser.<br><br>So the client is a relatively small, one-time cost. Now they just have to make it worthwhile.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_22:04:33", "killed": false, "user_key": "0e746190743aebfb9dcc11ca5487b640", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704004": {"up_voted": false, "ip": "", "has_replies": false, "message": "I didn't see any mention of you crying after seeing this.  Can't be all that great if it didnt make you cry", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_21:15:34", "killed": false, "user_key": "a51c77aba2a0f90b2e5ec07565d59271", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704005": {"up_voted": false, "ip": "", "has_replies": false, "message": "&gt; Firefox support? Yes! Linux support? What\u2019s that?<br><br>That is why I won't be bothering. Seriously, you have to *try* not to support Linux. Telling me how many standards are supported is a waste of time unless they plug seamlessly into my standards compliant system (Kubuntu).<br><br>There are 13 mentions of Windows in the article and comments, 6 of Linux, 4 of apple. MS, call me when you're *really* ready to talk (to my desktop).<br><br>Not to rain on Mr Ozzies parade at all. Truly cross platform, this would be great stuff!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_16:23:51", "killed": false, "user_key": "512c80783da4be86dd04772882583401", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704006": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mark Ashton: \"Gubbi - if you want to live in a browser only world you would have loved the days of the IBM Mainframe or mini-computers - its\u2019 the same thing. All of the data and processing happening on centralized machines, connecting up via a dumb terminal. The Web browser is the \u201cmodern\u201d equivalent of a dumb terminal.\"<br><br>No, in the old days of the mainframe and mini-computer, the IT department wrote your applications or purchased them, but with the web you have an endless number of individuals and organizations producing applications you can use for free. If you don't understand that difference and why it is so beneficial, then you are really out of touch with reality.<br><br><br>\"Mesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN.\"<br><br>Google Gears does that.<br><br>Perhaps you could be so kind as to explain again what Microsoft Mesh is supposed to do that can't already be done with Web 2.0, or that could with some additions?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_18:15:21", "killed": false, "user_key": "3776abd92e2634b57437f6b1029b2686", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704007": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, do your job and be critical.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_17:01:20", "killed": false, "user_key": "3b6d62d220d4d804d6998a2a7647a409", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704008": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is awesome. I haven't felt this excited since the day Microsoft launched PlaysForSure.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_18:04:39", "killed": false, "user_key": "06b07043fd24becf9191e474a55b6b8f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704009": {"up_voted": false, "ip": "", "has_replies": false, "message": "Toph: <i>I think it\u2019s as much about bringing the web outside of the browser as anything else.</i><br><br>Exactly. And that is why it doesn't make much sense. Why would I want to stay within browser? Because I don't want to install an application for each and every web service on each of my devices. I may even not have those applications ported to all my devices in their initial phases. I don't want to bother with upgrading to latest versions. The only problem Mesh solves is synchronizing my preferences. With this solved, it still sucks to move out of the browser.<br><br>Browser is not just another application, its a virtual machine on top of the actual machine.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_16:55:16", "killed": false, "user_key": "6566f1558fa9b77ce2f3f7605c5aa59e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704010": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mary Jo Foleyish Addendum Infobits (Windows Device and Mobile Sync Social-Graph Platform Professional Plus Mesh Ultimate Edition 2008)<br><br>1. Definition - \"Mesh\", as vague as .Net was, bet they start slapping \"Mesh For Sure\" on every product, without much thought.<br><br>2. Codenames? Irrelevant insider-baseball.<br><br>3. Team(s) 100 or 400? And more (I'll bet) to 'sync' and 'sell' Mesh to other Microsoft teams. Dogfood time.<br><br>4. Buzswords. Oh oh, overload city, Web 2.0 Microsoft-style, and \"social graph\", is so horrid that it deserves it's own wing in the Museum of Vaporware.<br><br>5. Guts. Pretty-Powerpointish Longhornian nifty architectural diagrams. Any resemblance to actual reality is purely consequential. Wishing disgrams.<br><br>6. Sync or collaboration and more or not or less or more or something. Whatever we can toss into the casserole, everyone into the Windows ecosystem pool, please...pretty please. Trust us.<br><br>7. Silverlight. Open to all, but some more special than others, entrance without tiokets, always getting backstage passes.<br><br>8. Live Mesh. Control your Mesh and social graphs remotely. Feed and water the Mesh, Tamagotchi Mesh. Unified Collaborative Utopia.<br><br>9. Consumer (a sector we always fail at), well Consumer until we ever figure out how to drive this SaaS thing.<br><br>10. Timing. Pre-PDC hype, fluff up Windows 7. Ray has to showcase SOMETHING sometime, might as well be now.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_04:00:14", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704011": {"up_voted": false, "ip": "", "has_replies": false, "message": "I find it interting and humerous that most people here and a lot of the pundits totally don't get what Mesh is about. It is NOT about moving the platform to the Web - at least not entirely. It's about having the best of both world's: the power and flexibility of applications running on your PC or Mac or phone or xbox or set-top box or any other device; and the sharing/connectivity and ubiquity of the Web. If this works you'll have your applications roam with you and adapt to the device you're using. If you're on a dumb terminal (aka a Web browser) you'll get a \"pure\" Web experience (AJAX! WOW!). If you're on a PC you'll get a full-fledged PC (or Mac) application. If you're using an XBOX or PS3 you'll get an appliation appropriate for that device. Your data moves with you from device to device but you're explicitly NOT moving to what I think is the most dreaded situation - everything on the Web and a lame world of AJAX and Flash and Silverlight.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:19:03", "killed": false, "user_key": "fd620d30ce856c99eeac7d190bbd4111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704012": {"up_voted": false, "ip": "", "has_replies": false, "message": "I wonder what this will mean for developers of existing web applications? Will they be forced to learn and adopt yet another online API? Will it be a mistake not to?<br><br>It'll be interesting to see just how much access will be given to developers. For instance, will it be possible to integrate the online storage facility with a user account on another web app?<br><br>I want all my data together in one place. Lots of web applications provide some kind of basic document storage. Wouldn't it be great if this was centralised across multiple accounts on multiple tools?<br><br>Sounds like the MOE could provide this, but it'll depend on individual developers to adopt and integrate with it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_05:11:52", "killed": false, "user_key": "559043d3329abf30a09d58caf0aa607e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704013": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi,<br><br>Sorry, Right link:<br><br><a href=\"http://www.charlesarthur.com/blog/wp-trackback.php?p=989\" rel=\"nofollow\">http://www.charlesarthur.com/blog/wp-trackback....</a><br><br>Kind regards,<br><br><br>Shakir Razak", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:13:19", "killed": false, "user_key": "b23427ecc65c8cedf89c0e365b980838", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704014": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now THIS sounds interesting. Finally the blend of desktop and the Web that we were all hoping Vista would be. I'm looking forward to seeing more about this at Web 2.0 this week. Thanks for the scoop Robert.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:10:04", "killed": false, "user_key": "6e40f98acdf2ac08487b049ab648b45f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704015": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now THIS is worth getting excited about...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:06:12", "killed": false, "user_key": "ac612e5c0825dd8bc9bdc634e632e166", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704016": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks man! Now the future of web is set loose to keep changing itself up.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:03:51", "killed": false, "user_key": "f0d7ffb944fa93d13e616f5e27b9de8f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704017": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have always been a Ray Ozzie fan since his days at Lotus Development in Massachusetts. I feel strange saying this but I am actually excited about this initiative from Microsoft. However, they do need to support Linux.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:10:00", "killed": false, "user_key": "1d1377c6457694139566c068c78d3111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704018": {"up_voted": false, "ip": "", "has_replies": false, "message": "@Mark Ashton - If the Developer is willing to write a gazillion different applications for each different platform.  Otherwise you'll roam alone.<br><br>I think those unimpressed (me for one) are getting it, we just don't think its that special.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:28:36", "killed": false, "user_key": "44c5450cb486d4e4e5b80ef7a01e7017", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704019": {"up_voted": false, "ip": "", "has_replies": false, "message": "Shakir - not sure I follow. I suppose Bill Gates has a lot more devices in his mesh :) but most people who are on the Internet have a few; their work PC; their home PC (or two); and their phone. Many of us have more devices. Some companies want all of those devices to be very expensive dumb terminals for Web apps. I'd rather actually use them for something better.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:30:18", "killed": false, "user_key": "fd620d30ce856c99eeac7d190bbd4111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704020": {"up_voted": false, "ip": "", "has_replies": false, "message": "Christopher Coulter -- vaporware? I'm using it right now, and it's going great.<br><br>Tom - cling to their Windows dominance? What about the \"Mac and mobile versions coming soon\" part? I'd say it's more about using all the work done on Windows in a more modern, \"connected\" way, instead of throwing it away just because it's not in the browser.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-25_02:37:59", "killed": false, "user_key": "0e746190743aebfb9dcc11ca5487b640", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704021": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hit send to soon on previous. The old canard of Windows development being broken and in a long slide to death has been around for a while. If you're talking about Win32 then you're mostly wrong but partly right. Joe developer is not building a lot of Win32 apps using VB anymore. Those people have turned into scripters/HTML jockeys because it's so much easier and they're riding the rush to the lowest common denominator in app design and performance. But the biggest part of the software industry as a whole is Win32 - both on the client and the server. Look at all of Adobe's software. Quicken. SAP. Oracle for Windows. All the big line of business applications are built using Win32/C++.<br><br>Then a large part of the remaining developers are using .NET on Windows. A large chunk of home grown line of busines software is writting using .NET. Although Silverlight brings part of .NET to Windows and eventually Linux, .NET is fundamentally a new programming model/API for building Windows apps.<br><br>If that's a long slide into oblivion then I'd geuss that most companies would take it. ;)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-25_08:16:17", "killed": false, "user_key": "fd620d30ce856c99eeac7d190bbd4111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704022": {"up_voted": false, "ip": "", "has_replies": false, "message": "Chris Coulter said..<br><br>\"I don\u2019t get it, what demand is there for cloud sync? They\u2019d be better off preaching the virtualization gospels.<br><br>Windows development is truly broken, I think it will be a slow slide into nothing, a decade-long freefall.\"<br><br>I disagree with your premise that there's no demand for cloud sync. I want it and I see dozens of scenarios where it would solve difficult programming/computing problems. But one possible reason you and others might think there's no demand for cloud sync is that you're already stuck in the world of using Web-based apps for most of your computing. If you're doing that, who cares right? Your data is already on the Web. But then you're living in a world of AJAX/Flash/Flex that turns your PC or Mac or iPhone into an expensive dumb terminal. Don't you want to use your machine for what it was designed for? Hardware acceleration? Access to the local file system? Faster/more interactive applications?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-25_08:11:11", "killed": false, "user_key": "fd620d30ce856c99eeac7d190bbd4111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704023": {"up_voted": false, "ip": "", "has_replies": false, "message": "Eduardo (and others) tried to make the point that Google Gears does what Mesh does.<br><br>\u201cMesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN.\u201d<br><br>\"Google Gears does that.\"<br><br>Not so much. Google gears sort of kind of makes Web-based apps work when the user us offline. That's nice...but you're still stuck using a Web-based application. MESH is about having your apps and data move with you from device to device and up onto the Web when you want your data there. MESH means that you can use local/native applications when you're using a PC/Mac or other device that supports the application and only forces you into using \"native Web\" apps when you have to or want to. Big difference.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-25_08:06:27", "killed": false, "user_key": "fd620d30ce856c99eeac7d190bbd4111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704024": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mark--\"Don\u2019t you want to use your machine for what it was designed for? Hardware acceleration? Access to the local file system? Faster/more interactive applications?\"<br><br>Yes, please. :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-25_15:19:49", "killed": false, "user_key": "0e746190743aebfb9dcc11ca5487b640", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704025": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks for the update!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:36:11", "killed": false, "user_key": "464310a7efac179b26a317f82734932a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704026": {"up_voted": false, "ip": "", "has_replies": false, "message": "HI,<br><br>Not just that Mark, I was flippantly referring to the hype about Bill Gates' house having intelligence that allowed the electronics (though probably not computing at the time) to follow him around from lighting to media.<br><br><br>Kind regards,<br><br><br>Shakir Razak", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:47:22", "killed": false, "user_key": "b23427ecc65c8cedf89c0e365b980838", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704027": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi,<br><br>@Mark Ashton,<br><br><br>So something like Bill Gates house then!<br><br><br><br>Kind regards,<br><br><br>Shakir Razak", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:22:20", "killed": false, "user_key": "b23427ecc65c8cedf89c0e365b980838", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704028": {"up_voted": false, "ip": "", "has_replies": false, "message": "wow... on one hand we have big companies like Microsoft trying to sell us the THE next big IT thing... eg. Mesh. On the other hand we have people like Walt Mossberg telling us that people don't get the most basic things on their PCs sorted... eg. world wide confusion around what is broadband and what is not, on-demand video via their PC etc.<br><br>Is it only me or is the reality of technology that (with some minor exceptions) tech companies can't even get the most basic IT problems sorted as far consumers are concerned.<br><br>For another example, after having been promised the mobile web for the better part of 10 years it took a little company in Cupertino to make it happen. Just look at Googles' mobile usage stats. Was it 95% of mobile traffic coming from iPhones when they had only sold some 5 million phones? (compared to 120 million sold by it's competitors during the same period)<br><br>While I welcome Microsoft trying to think different for a change rather than copying everyone else baldy, I have the bad feeling that this is solely an attempt to protect their Windows/ Office cash cow.<br><br>Yes we might see a mobile client... but it will only be for the Windows Mobile platform... maybe Symbian. That's it. Mac support? Sure maybe in a year or two but don't expect a full feature set. Linux? I thought only hackers use that. I know I sound cynical but Microsoft's track record to this day hasn't been all that great in this arena. Anyone remember the promise of a Silverlight client for Mobile Platforms? I wonder what happened to that. Oh right, Microsoft is licensing Flash Lite.<br><br>Microsoft's biggest problem seems to be its' inherent dependents on Windows as a revenue stream. Until they loose that you won't see truly innovative products that will change the world without locking you into their technology.<br><br>Take a look at Procter and Gamble. They are about to loose the majority of their cash cow medical patents. The same goes for Pfizer Inc. . P&amp;G decided to invite outside companies as partners in order to help them bring their ideas to market while sharing revenue. Pfizer so far hasn't done anything to convince the market it will survive in it's current form past 2012.<br><br>In the world of Microsoft this would Microsoft approaching Yahoo in order to make them a parter rather than aggressively perusing a take over.<br><br>All big things start small. A simple idea to deliver a simple solution: Google Search, Google Maps, the iPhone, Voice Telephone (the landline type), the household lightbulb and dare I say MS-DOS+MS-Basic to put a PC on every desk. They all changed the world.<br><br>Do you feel Mesh falls into the same category?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_02:01:25", "killed": false, "user_key": "490d9b37fe894c545ff3210ee810ac7e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704029": {"up_voted": false, "ip": "", "has_replies": false, "message": "First, great post. Truly good stuff. When I read your \"get off my lawn\" teaser earlier, I was eager to see the reveal, but I've been at the New Comm Forum thing all day without the real web (re the mobile web? It's still not *really* here).<br><br>As a very long time Mac guy who still appreciates what MSFT is doing in some arenas, I'm really excited about this as a possibility. I want the borders to be open, but that might (should?) come later, because if I were Ozzie, I'd want my house in order before inviting over the neighbors.<br><br>I support the learning experience and what this will teach others who might choose to implement something based on what Mesh teaches the world.<br><br>At moments like this, I wonder if Ozzie is speaking from him position, or from his passion. If B, this is something amazing. And I have no way to judge or know.<br><br>Thanks, Robert.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_03:45:30", "killed": false, "user_key": "2f357e9ee4d75cf12092bf9f23b13bae", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704030": {"up_voted": false, "ip": "", "has_replies": false, "message": "There is a really good youtube video that ties this into their strategy quite nicely:<br><br><a href=\"http://www.youtube.com/watch?v=eBGIQ7ZuuiU\" rel=\"nofollow\">http://www.youtube.com/watch?v=eBGIQ7ZuuiU</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-24_08:19:57", "killed": false, "user_key": "d850dbe3cc41ecbabd09a4534236dd48", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704031": {"up_voted": false, "ip": "", "has_replies": false, "message": "What problem is the Mesh trying to solve? Mary Jo mentions something about it being good for sharing photos. It looks to me to be a re-packaging of .Net. Microsoft keeps wanting to redefine the web using kind of similar terms. They are running out of options.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_02:56:24", "killed": false, "user_key": "aff533acf9b173682e713fb1cb290a94", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704032": {"up_voted": false, "ip": "", "has_replies": false, "message": "Groovy.  I can't wait to see if Ray has the wherewithall to start cutting some of the MS closetful of assets and let the winners like this shine through.  What of Sharepoint integration, Skydrive, Groove, how they fit?  Great to see MS play their integration card more seriously these days.  Anxious to see it unfold, I'm signing up.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_02:16:33", "killed": false, "user_key": "e8ed395e19ba6068b7f8e1d91b051d40", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704033": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>I think those unimpressed (me for one) are getting it, we just don\u2019t think its that special.</i><br><br>Me for two.<br><br>Or that they can deliver, or that the end-result will even be close to half of what promised, half features stripped to get it to ship, like they did with the \"Viridian\" hypervisor.<br><br>I don't get it, what demand is there for cloud sync? They'd be better off preaching the virtualization gospels.<br><br>Windows development is truly broken, I think it will be a slow slide into nothing, a decade-long freefall.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_03:08:11", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704034": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sounds \"groove-y.\"<br><br>Groove++ ?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:12:00", "killed": false, "user_key": "67ddf598c32d0ae929852af89fa4b272", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704035": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sounds interesting. Does it have any relationship with Silverlight? Do you have a feeling as to what will be some of the killer apps which will drive the adoption of this new kinds of platforms? Finally this will hopefully push google to get a little bit more vocal about Google Gears (which was  initially boxed as offline) but is really about being able to push the limits of the browsers while keeping the web open. Looking forward to the qik videos.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:12:22", "killed": false, "user_key": "81bb469b2b63a7ee6b47e71ff7483431", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704036": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mesh site is up and running @ <a href=\"https://www.mesh.com/\" rel=\"nofollow\">https://www.mesh.com/</a> you have to go thru the MS Connect site to fill up the registration info.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:13:51", "killed": false, "user_key": "f0d7ffb944fa93d13e616f5e27b9de8f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704037": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks for the quick overview.<br><br>Seems quite interesting. It's refreshing to see something really new and innovating from Microsoft.<br><br>If they can somehow quickly fulfill this vision to a multitude of devices, it might very well have a bright future.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:19:23", "killed": false, "user_key": "70a3fa2b5cef1685f96ed038a63af2e4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704038": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mesh is Groove scaled up.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:20:41", "killed": false, "user_key": "2e8a8696351166c63ac462f780ec3b5c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704039": {"up_voted": false, "ip": "", "has_replies": false, "message": "&gt;It\u2019s a new two-way system that both receives Atom (default) or RSS feeds from other MOE\u2019s as well as sends them out to other MOEs.<br><br>Can you explain why this is important and what it does, really.<br><br>Don't I have enough feeds to read that I pick without having your feeds you picked shovelled at me? or? Explain.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:21:16", "killed": false, "user_key": "b1088dbd877c2d7d33e6b3b63ee38081", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704040": {"up_voted": false, "ip": "", "has_replies": false, "message": "wow, online file storage with file revision history...<br><br>somebody call gutenberg and tell him his reign is over.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:24:20", "killed": false, "user_key": "bd08ad72ab7b469a15d3ba45a5a85626", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704041": {"up_voted": false, "ip": "", "has_replies": false, "message": "Just wait until hackers exploit the print layer to this mesh stuff, enough to grab root and start injecting python code into all of your RSS networks which execute beautifully when you need to sync this crap. HTTP ? Wonderful.  HTTPS ? Yea right.  I'm not going to drink this Koolaid.  Neither should IT.<br><br>100 individuals to make this POS ?  How many do you think they have dedicated to security ?  Web server ?  We talking about expensive IIS servers that will need 10 IT people to watch it ?  What does Mesh look like on the server ?<br><br>I'm sick and tired of overinflated companies trying to force feed me the \"future.\"  The web is dead.  It's gone. Finished.  Hackers have won.<br><br>I am ready to see the world without Msoft.  I'm ready to see something better.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:33:02", "killed": false, "user_key": "6677e303d879a19e00be9c5f01facb21", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704042": {"up_voted": false, "ip": "", "has_replies": false, "message": "Read Mary Jo's summary -- more details (and graphs).<br><br>It sounds genius. Very ambitious.<br><br>Now, Robert, aren't you glad you hung on to that MSFT stock..?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:37:50", "killed": false, "user_key": "2e631426dadcebf7a8d2898dd13a2ecf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704043": {"up_voted": false, "ip": "", "has_replies": false, "message": "Interesting...not quite sure what to make of this, but I love that the pace of change is heating up. This is Microsoft responding to Google's vision of moving everything to \"the cloud.\" If they are successful, it will be one for the textbooks.<br><br>Thanks, Robert, for the Plaxo mention! Not sure I see the connection (aside from sync playing a role), but we live for a world of data portability, and we seek, as always to be a little \"Switzerland\" with regards the various warring factions.<br><br>:)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:37:52", "killed": false, "user_key": "6d21b6678f279c5f0f5c2887349b9322", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704044": {"up_voted": false, "ip": "", "has_replies": false, "message": "OK. So I see there is SSL.  Seriously.  I have no idea what this crap is.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:38:16", "killed": false, "user_key": "6677e303d879a19e00be9c5f01facb21", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704045": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>100 individuals to make this POS ? How many do you think they have dedicated to security ? Web server ? We talking about expensive IIS servers that will need 10 IT people to watch it ? What does Mesh look like on the server?</i><br><br>I'm pretty sure Dvorak has the whole \"crazy rant\" business wrapped up.  FYI.<br><br><i>I am ready to see the world without Msoft. </i><br><br>It was called the 19th Century, and you missed it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:50:18", "killed": false, "user_key": "67ddf598c32d0ae929852af89fa4b272", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704046": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi Robert,<br><br>What I said Somewhere else:<br><br><br>The Inevitable future.<br><br><br>Robbie Bach outlined this as part of of X-box 360/Gaming.<br><br><br>What it really is, is Microsoft trying to retain it\u2019s market as it slowly waves good-bye.<br><br><br>Almost too late, in competition with open-API\u2019S and the Symantic Web 3.0, but for the probable lazy developers who won\u2019t have to do much work just to put everything through Live Mesh, and familiar 90% of users who mostly don\u2019t know or care what Web 2.0 is!<br><br><br><br>If Microsoft get this onto Windows Mobile (+ symbian compatibility) and offer a decent web-office, they might just make it game-over for the other players, but we are talking about Microsoft here.<br><br><br>Yours kindly,<br><br><br>Shakir Razak", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:56:35", "killed": false, "user_key": "b23427ecc65c8cedf89c0e365b980838", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704048": {"up_voted": false, "ip": "", "has_replies": false, "message": "Channel 10 has a video at <a href=\"http://on10.net/blogs/nic/Hands-on-with-Live-Mesh/\" rel=\"nofollow\">http://on10.net/blogs/nic/Hands-on-with-Live-Mesh/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:57:14", "killed": false, "user_key": "170fb0e38ac402e5ce7b10877b922a31", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704049": {"up_voted": false, "ip": "", "has_replies": false, "message": "Tim,<br><br>It's the first big step to a web operating system. Apps residing in the cloud, with ubiquitous access from scores of nodes (\"desktops\").<br><br>If they can pull it off... wow.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_00:58:36", "killed": false, "user_key": "2e631426dadcebf7a8d2898dd13a2ecf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704050": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>This is awesome news from M$ re MOE - M$ new Live Mesh environment.<br><br>I am a MCSE: Security &amp; Messaging and love Microsoft and have been very disappointed lately, so this disruptive RIA technology will finally get Microsoft relevant again!! Yeah!!<br><br>Thanks for sharing the conf. call 800# and for live blogging this call and all the news streaming in by the second! very exciting!<br><br>This new open service-oriented platform is much needed, very promising news for open collaborative apps / sharing.<br><br>\"The Mesh\" is going to be BIG!!<br><br>\"Stay off my lawn!\", by Ozzie is funny!<br><br>Susan M. Beebe, PMP, MCSE<br>@smbeebe", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:03:23", "killed": false, "user_key": "021f78e9313029a974804f9d4f56d386", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704051": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree, at first look this looks like something related to Groove. I always liked the underlying Groove platform although the top layer ruined it. This could end up being a great transport for applications that are usually but not always online. Really hoping they deliver on the Mac and device support!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:03:57", "killed": false, "user_key": "d4ee7363587220b999fc37c3b67376da", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704052": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi,<br><br><br>Just remembered that bid for Yahoo\u2026..<br><br>Some prescient thought: <a href=\"http://www.charlesarthur.com/b....._popup=989\" rel=\"nofollow\">http://www.charlesarthur.com/b....._popup=989</a><br><br><br>What's the Bet this was timed to steam-roller the Bid!<br><br><br>This is like his previous work, but If Ray Ozzy wants to forge Microsoft ahead into the 21st century, he\u2019s going to have to do a lot more than what companies like Sproqit, and web-synchronisers have been doing for a very long time.<br><br>They have an absolute end-to-end solution/platform (strategy/plan) here, but it will only succeed with the network effect, and why should people need to depend on any single company in the modern \"open\" world.<br><br><br>Yours kindly,<br><br><br>Shakir Razak", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:06:22", "killed": false, "user_key": "b23427ecc65c8cedf89c0e365b980838", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704053": {"up_voted": false, "ip": "", "has_replies": false, "message": "I need to access my data on three different operating systems on different computers at my university on a fairly frequent basis. Lack of portability means epic fail; I'll stick with web apps and WebDAV shares for now, thanks.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_01:06:35", "killed": false, "user_key": "13f93ce1e022ce7016613acefb30baa0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704054": {"up_voted": false, "ip": "", "has_replies": false, "message": "I wonder if this'll be tied more deeply into Windows 7--or if the antitrust regulators of the world would even let MS do that. But what I really want is to be able to sit down at any web-connected PC and log on using my Windows Live ID. 100% in the cloud, when I need it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_05:33:00", "killed": false, "user_key": "0e746190743aebfb9dcc11ca5487b640", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704055": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think I sort of understand the concept, and it sounds very innovative.<br><br>But how about privacy? What does Microsoft know about you and your system if you want to use Mesh?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_05:34:19", "killed": false, "user_key": "6f94db569e38a9f8aea1b6446590951f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704056": {"up_voted": false, "ip": "", "has_replies": false, "message": "Great post. You really tied it together in a way that details the major areas of functionality, the potentials of what Mesh can do and what it means, etc.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_07:59:00", "killed": false, "user_key": "e8a08b2b2efff7daf0db8e851ab41186", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704057": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, great reporting man, I love it when you get excited about technology, this framework looks really interesting, us on the east coast are just revving up to the news.<br><br>Thanks for the entertaining twittering last night too, I can usually tell how important thing are just by how excited you get. Sometimes I wonder if you ever wonder if Microsoft would be doing differently today had you stayed with them? One of Microsofts biggest mistakes was not paying you even half of what you should have been making.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_08:09:00", "killed": false, "user_key": "39314b9561ab4752a37c3370fbf6ee5d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704058": {"up_voted": false, "ip": "", "has_replies": false, "message": "@38, @43 Here, here! A great post from Robert -- excellent reporting and links to more material. He's a Techmeme all by himself!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_08:46:16", "killed": false, "user_key": "2e631426dadcebf7a8d2898dd13a2ecf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704059": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Microsoft is going to keep Windows relevant and keep us all from sliding into a Web that doesn\u2019t rely much on the underlying operating system.\"<br><br>Yeah, what a horror show that would be.  Reliance on end-point devices under the control of a single monopolistic company is the ideal in any network.  I, for one, miss the days when one company controlled all the devices on the telephone network and charged an extra monthly rental fee for each device connected to the network in addition to the network usage fees, allowing me to pay $600 each over a ten year period for the use of their telephone receivers in my home (in 1970's dollars).<br><br>Things sure changed for the worse when we slid into a telephone network that didn't rely much on one company's control of the end-point devices.  The commoners could then buy their own telephone receivers for 10 or 20 bucks and be done paying for them, robbing the telephone company of it's rightfully-earned monopoly rents on those devices.  Next thing you knew, they were connecting stuff the network was never designed for, like modems, and that entire Web that you warn us about sliding into without the protection of reliance on the \"underlying operating system\" (by which you must be referring to the OS on the end-point devices) was allowed to grow out of that.  What a nightmare it's all become.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_09:19:14", "killed": false, "user_key": "b4c3ffb5bf1dc58676ee4d427cb250da", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704060": {"up_voted": false, "ip": "", "has_replies": false, "message": "You're damed if you do..damned if you don't.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_09:52:44", "killed": false, "user_key": "aba6e77dd14a6ba0fc2e7e5f07db3908", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704061": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm still trying to grasp how relevant Mesh is for the browser only future? I have most of the services on cloud now and it doesn't really matter where I'm accessing those services from. Many things like feeds, music, even app development to some extent have become machine independent and collaboration is one of the core principles. About information being pushed and pulled, isn't that what is happening with friendfeed and twitter? I think Mesh provides an alternative route to the browser only world.... Not sure if it is worth pursuing.<br><br><br>Will watch out for more perspectives though.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_10:01:56", "killed": false, "user_key": "6566f1558fa9b77ce2f3f7605c5aa59e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704062": {"up_voted": false, "ip": "", "has_replies": false, "message": "And how attractive is the 5GB free usage? Would anyone start paying for more? cuz 5 GB seems too little for anyone in the non-\"browser-only-world\".", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_10:06:01", "killed": false, "user_key": "6566f1558fa9b77ce2f3f7605c5aa59e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9704063": {"up_voted": false, "ip": "", "has_replies": false, "message": "Gubbi - if you want to live in a browser only world you would have loved the days of the IBM Mainframe or mini-computers - its' the same thing. All of the data and processing happening on centralized machines, connecting up via a dumb terminal. The Web browser is the \"modern\" equivalent of a dumb terminal. We can do better. Mesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-04-23_10:18:53", "killed": false, "user_key": "fd620d30ce856c99eeac7d190bbd4111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18353164", "user_id": "anonymous", "forum_id": "125200", "hash": 2897271022471227208}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "ray_ozzie_delivers_with_live_mesh", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18353164, "num_posts": 83, "closed": true, "queued": false, "killed": false}, "reactions_limit": 10, "context": {"show_reply": false, "use_fb_connect": true, "forum_facebook_key": "faaf467d0f47abde553c3b8e0e1b3570", "use_yahoo": false, "subscribed": false, "use_twitter_signin": true, "use_openid": false, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

if(typeof DsqLocal == 'undefined') {
	DsqLocal = {};
}



/**
 * Dsq.Strings: UI strings
 */
Dsq.Strings = new function() {
	this.ADD_NEW_COMMENT = "Add New Comment";
	this.LOG_INTO_DISQUS = "Log into DISQUS";
	this.USE_MEDIA = "Use Media";
	this.LOGOUT = "Logout";
	this.SHARING_OPTIONS = "Sharing options";
	this.SHARE_ON = "Share on";
	this.TWEET_THIS_COMMENT = "Tweet this comment";
	this.SHARE_ON_NEWSFEED = "Share on news feed";
	this.SEND_UPDATE_TO_YAHOO = "Send update to Yahoo!";
	this.REBLOG_ON = "Reblog on";
	this.CONFIGURE_OPTIONS = "Configure options";
	this.POST_AS = "Post as";
	this.SORT_BY = "Sort by";
	this.SUBSCRIBE_BY_EMAIL = "Subscribe by email";
	this.SUBSCRIBE_BY_RSS = "Subscribe by RSS";
	this.POPULAR_NOW = "Popular now";
	this.BEST_RATING = "Best Rating";
	this.NEWEST_FIRST = "Newest first";
	this.OLDEST_FIRST = "Oldest first";
	this.HIGHLIGHTED = "Highlighted";
	this.UNSUBSCRIBE = "Unsubscribe";
	this.REQUIRED = "Required";
	this.OPTIONAL = "Optional";
	this.YOU_ARE_COMMENTING_AS_A = "You are commenting as a";
	this.LOGIN_BELOW = "Login below";
	this.PLEASE_LOGIN_BELOW_TO_COMMENT = "Please login below to comment.";
	this.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL = "Subscribe to all comments by email";
	this.DO_NOT_SUBSCRIBE_TO_COMMENTS = "Do not subscribe to comments";
	this.REALTIME_UPDATING_IS = "Real-time updating is";
	this.ENABLED = "enabled";
	this.PAUSED = "paused";
	this.PAUSE = "Pause";
	this.RESUME = "Resume";
	this.SHOW = "Show";
	this.JUST_NOW = "Just now";
	this.REPLY = "Reply";
	this.EDIT = "Edit";
	this.FLAG = "Flag";
	this.MODERATE = "Moderate";
	this.CANCEL = "Cancel";
	this.REPLYING_TO = "Replying to";
	this.REPORT_MISSING_REACTIONS = "Report missing reactions";
	this.POST_A_COMMENT = "Post a comment";
	this.FLAG_INAPPROPRIATE_COMMENT = "Flag inappropriate comment";
	this.FLAGGED = "Flagged";
	this.NO = "No";
	this.YES = "Yes";
	this.NEVER_MIND = "Never mind";
	this.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR = "Are you sure you would like to report this comment to a moderator";
	this.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION = "This will flag comments for moderators to take action";
	this.TO_RATE_PLEASE_LOG_IN = "To rate, please log in";
	this.JUST_A_MOMENT = "Just a moment...";
	this.GUEST = "Guest";
	this.NAME = "Name";
	this.EMAIL = "Email";
  this.WEBSITE = "Website";
  this.SETTINGS = "Settings";
  this.MODERATOR_OPTIONS = "Moderator options: ";
  this.MODERATE_OPTIONS = "Moderate Options";

  // Thread moderator actions
  this.CLOSE_THREAD = "Close thread";
  this.OPEN_THREAD = "Open thread";
  this.REMOVE_THREAD = "Remove thread";
  this.RESTORE_THREAD = "Restore thread";
  this.ACTIONS = "Actions";
};
// Dsq.Strings

/**
 * Dsq.FmtStrings: functions that return interpolated UI strings
 */
Dsq.FmtStrings = new function() {
	// Seems we have to use named interpolation for Django to translate. Investigate more.
	this.LOGGED_IN_AS = function(username) {
		return Dsq.Utils.interpolate('Logged in as %(username)s', {username:username});
	};

	this.LOGOUT_FROM = function(disqus) {
		return Dsq.Utils.interpolate('Logout from %(disqus)s', {disqus:disqus});
	};

	this.SHOWING_COMMENTS_FULL = function(total, num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comment", {num:num, total:total});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comments", {num:num, total:total});
		}
	};

	this.SHOWING_COMMENTS_WITHOUT_PAGINATION = function(num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comment", {num:num});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comments", {num:num});
		}
	};

	this.NUMBER_OF_COMMENTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s comment'
				: '%(num)s comments'
			), {num:num});
	};

	this.NUMBER_OF_LIKES = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s like'
				: '%(num)s likes'
			), {num:num});
	};

	this.NUMBER_OF_POINTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s point'
				: '%(num)s points'
			), {num:num});
	};
};
// Dsq.FmtStrings





Dsq.CSRF_TOKEN = 'a2d140c59df8cd4ce27a20e0829cacd8';
Dsq.COMMENTS_RE = /(<li.*?id="?dsq-comment-(\d+)"?.*?>)((?:.|\s)*?)(<\/li>)/gim;
Dsq.POST_RE = /(<div.*?id="?dsq-comment-header-(\d+)"?.*?>)((?:.|\s)*?)(<\/div>)\s*(<div.*?class="?dsq-comment-body"?.*?>)((?:.|\s)*)(<\/div>)/gim;
Dsq.POST_BODY_RE = /\s*(<div.*?id="?dsq-comment-message-(\d+)"?.*?>)((?:.|\s)*)(<\/div>)/gim;
// HACK: Safari ends with "-->" while other browsers end with "--&gt;" as expected.
Dsq.MEDIA_POST_RE = /&lt;!--\[(.*?)\]--(?:>|&gt;)/gim;



var FragmentPacket = function(reader, writer, writer_url, is_child, receiveCallback) {
	var that = this;
	this.reader = reader;
	this.writer = writer;
	this.writer_url = writer_url;

	this.is_child = is_child || false;
	this.receiveCallback = receiveCallback;

	this._lastHash = null;

	this._accumMsg = '';

	this._lastSeqno = 0;

	this.MAX_DATA_LEN	= 1024;

	this.WAIT_TIME		= 10;

	this.READY		= 0x1;
	this.WRITING	= 0x2;
	this.FIN		= 0x4;
	this.ACK		= 0x8;

};

FragmentPacket.prototype.createListener = function() {
	var that = this;
	var listener = function() {
		that.recv();
	};
	return window.setInterval(listener, 10);
};

FragmentPacket.prototype.log = function(msg) {



};

FragmentPacket.prototype.recv = function() {
	var hash;
	if (/MSIE/.test(navigator.userAgent)) {

		hash = this.reader.name;
	} else {

		var hashIndex = this.reader.location.href.indexOf('#');
		if (hashIndex == -1) {
			return;
		}
		hash = this.reader.location.href.substring(hashIndex+1);
	}
	var flags = parseInt(hash.substring(0, 4), 10);
	var seqno = parseInt(hash.substring(4, 24), 10);
	var data  = hash.substring(24);

	if (this._lastHash !== hash) {
		this._lastHash = hash;
		this.log('recv: ' + hash);

		this.log(' flags: ' + flags);
		this.log(' seqno: ' + seqno + ' len: ' + hash.substring(4, 24).length + ' (' + hash.substring(4, 24) + ')');
		this.log(' data: ' + data + ' len: ' + data.length);

		this._lastSeqno = seqno;

		if (flags & this.WRITING) {
			this._accumMsg += data;
			this.sendFlag(this.ACK, seqno);
			if (flags & this.FIN) {
				this.log('recv finished: ' + decodeURIComponent(this._accumMsg));
				this.receiveCallback(decodeURIComponent(this._accumMsg));

				this._accumMsg = '';

				this.sendFlag(this.READY | this.ACK, this._lastSeqno);
			}
		}
	}

	return {
		flags: flags,
		seqno: seqno,
		data: data
	};
};

FragmentPacket.prototype.sendRawPacket = function(packet) {
	if (/MSIE/.test(navigator.userAgent)) {
		this.writer.name = packet;
	} else {

		this.writer.location.href = this.writer_url + '#' + packet;
	}

};

FragmentPacket.prototype.sendFlag = function(flag, seqno) {
	this.sendRawPacket(this._zerofill(flag, 4) + this._zerofill(seqno, 20));
};

FragmentPacket.prototype.send = function(msg) {
	this._send(0, encodeURIComponent(msg));
};

FragmentPacket.prototype._send = function(packetNum, msg) {
	var that = this;
	var recvBuf = this.recv();

	if (packetNum === 0) {

		if (!(recvBuf.flags & this.READY)) {
			this.log('client is not ready, waiting...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		}
	} else {

		if (!( (recvBuf.flags & this.ACK) && (recvBuf.seqno === this._lastSeqno) )) {
			this.log('waiting for ack from client...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		} else {
			this.log('received ack: ' + this._lastSeqno + ' ' + recvBuf.seqno);
		}
	}

	var flags = this.WRITING;
	var num_packets = Math.ceil(msg.length / this.MAX_DATA_LEN);
	this.log('num_packets: ' + num_packets);

	if (num_packets === packetNum) {

		this.log('message successfully sent!');
		this.sendFlag(this.READY | this.ACK, this._lastSeqno);
		return true;
	}

	this._lastSeqno++;

	if (packetNum == num_packets-1) {
		flags |= this.FIN;
	}

	var data = msg.substring(packetNum * this.MAX_DATA_LEN, (packetNum+1) * this.MAX_DATA_LEN);
	var packet = this._zerofill(flags, 4) + this._zerofill(this._lastSeqno, 20) + data;

	this.log('sending raw packet: ' + packet);
	this.sendRawPacket(packet);

	return this._send(packetNum + 1, msg);
};

FragmentPacket.prototype._zerofill = function(num, width) {
	var retval = num.toString();
	var retval_len = retval.length;
	for (var i = 0; i < width - retval_len; i++) {
		retval = '0' + retval;
	}
	return retval;
};

var PostMessagePacket = function(receiver, receiveCallback, id, receiverId) {
	var that = this;
	this.receiver = receiver;
	this.receiveCallback = receiveCallback;
	this.id = id;


	this.receiverId = receiverId;
};

PostMessagePacket.prototype.createListener = function() {
	var that = this;

	var listener = function(e) {

		if (!that.id) {
			that.id = e.data;
			return;
		}


		var id = e.data.split(';')[0];
		if (id !== that.id) {
			return;
		}
		var data = e.data.substring(e.data.indexOf(';') + 1);

		that.receiveCallback(data);
	};

	if (typeof window.attachEvent == 'function') {
		window.attachEvent('onmessage', listener);
	} else if (typeof window.addEventListener == 'function') {
		window.addEventListener('message', listener, false);
	} else {
		throw new Error('No method found to create event listener for PostMessagePacket.');
	}
};

PostMessagePacket.prototype.send = function(msg) {



	var needs_reget = false;
	try {
		if (typeof this.receiver.id == 'undefined' || typeof this.receiver.postMessage == 'undefined') {
			needs_reget = true;
		}
	} catch(e) {


	}
	if (needs_reget && typeof this.receiverId != 'undefined') {
		this.receiver = document.getElementById(this.receiverId).contentWindow;
	}

	var packet;
	if (!msg) {

		packet = this.id;
	} else {
		packet = this.id + ';' + msg;
	}
	this.receiver.postMessage(packet, '*');
};

PostMessagePacket._last_unique_id = null;
PostMessagePacket._get_unique_id = function() {
	var id = (new Date()).getTime();
	if (id == PostMessagePacket._last_unique_id) {
		id++;
	}
	PostMessagePacket._last_unique_id = id;
	return id.toString();
};

var JsonRpc = function() {

	this.ids = {};

	this.objectToJSON = function(obj) {
		var json = '';
		var results = [];

		if (obj === undefined || obj === null) {
			return 'null';
		}

		switch (obj.constructor) {
			case Object:
				for (var property in obj) {
					if (obj.hasOwnProperty(property)) {
						results.push(this.objectToJSON(property) + ': ' + this.objectToJSON(obj[property]));
					}
				}
				json = '{' + results.join(', ') + '}';
				break;
			case Array:
				for (var i = 0; i < obj.length; i++) {
					results.push(this.objectToJSON(obj[i]));
				}
				json = '[' + results.join(', ') + ']';
				break;
			case Number:
			case Boolean:
				json = obj.toString();
				break;
			case String:

				var specialChars = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\'};

				json = obj.replace(/[\x00-\x1f\\]/g, function(match) {
					var ch = specialChars[match];
					return ch ? ch : '\\u00' + match.charCodeAt().toPaddedString(2, 16);
				});

				json = '"' + json.replace(/"/g, '\\"') + '"';
				break;
			default:

				json = 'null';
				break;
		}

		return json;
	};

	this.createHandler = function(send_func, registered_funcs) {
		var that = this;
		var handler = function(message) {

			try {
				var rpc = eval('(' + message + ')');
			} catch(e) {
				alert('bad JSON: ' + message);
				return;
			}
			if (rpc.method) {

				if (!registered_funcs[rpc.method]) {
					return;
				}

				var retval = registered_funcs[rpc.method].apply(null, rpc.params);
				if (rpc.id) {
					var response = {
						result: retval,
						error: null,	// TODO
						id: rpc.id
					};
					send_func(that.objectToJSON(response));
				}
			} else if(rpc.result) {

				if (!that.ids[rpc.id]) {
					return;
				}

				that.ids[rpc.id](rpc.result);
				delete that.ids[rpc.id];
			}
		};
		return handler;
	};

	this.execute = function(send_func, method, params, response_callback) {
		response_callback = response_callback || null;
		var id = (response_callback) ? (new Date()).getTime() : null;

		var request = {
			method: method,
			params: params,
			id: id
		};

		send_func(this.objectToJSON(request));

		if (id) {
			this.ids[id] = response_callback;
		}
	};
};
JsonRpc = new JsonRpc();

var ParentMessenger = function(childUrl, receiverUrl, container, receiveCallback) {


	if (navigator.userAgent.indexOf('Safari') >= 0 && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf('Version/') + 8), 10) == 3) {
		throw new Error("unsupported.");
	} else if (window.opera) {
		throw new Error("unsupported.");
	}



	if (!receiverUrl &&
		navigator.userAgent.indexOf('Gecko') >= 0 &&
		parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf('rv:') + 3, navigator.userAgent.indexOf('rv:') + 6)) < 1.9) {
		throw new Error("unsupported.");
	}


	if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {


		if (document.domain == window.location.hostname) {
			receiverUrl = '';
		}
	}

	var that = this;
	this.childUrl = childUrl;
	this.receiverUrl = receiverUrl;
	this.container = container || document.body;

	this.packetHandler = null;


	this._ready = false;
	this._error = false;


	var _createReceiverForFragmentPacket = function() {

		that.receiver = document.createElement('iframe');
		that.receiver.src = receiverUrl;
		that.receiver.id = 'receiver_' + (new Date()).getTime();
		that.receiver.name = that.receiver.id;

		that.receiver.frameBorder = '0';
		that.receiver.frameSpacing = '0';
		that.receiver.style.borderStyle = 'none';

		var receiver_onload = function() {
			var receiver = document.getElementById(that.receiver.id).contentWindow;

			try {
				receiver.document.body.innerHTML = '';
			} catch(e) {

				that._error = true;
			}
			receiver.document.body.style.padding = '0px';
			receiver.document.body.style.margin = '0px';

			var child = receiver.document.createElement('iframe');
			child.id = 'child';
			child.name = 'child';
			child.src = that.childUrl;

			child.frameBorder = '0';
			child.frameSpacing = '0';
			child.style.borderStyle = 'none';
			child.style.width = '100%';
			child.style.height = '100%';
			receiver.document.body.appendChild(child);

			that.child = receiver.document.getElementById('child').contentWindow;
			that.receiver = receiver;

			that.packetHandler = new FragmentPacket(that.receiver, that.child, that.childUrl, false, receiveCallback);

			that._listener = that.packetHandler.createListener();

			that.packetHandler.sendFlag(that.packetHandler.READY, 0);

			that._ready = true;
		};

		that.receiver.onreadystatechange = function() {
			if (this.readyState == 'complete') {
				receiver_onload();
			}
		};

		that.receiver.onload = receiver_onload;







		if (Dsq.Utils.ie) {
			if (that.container.clientWidth === 0) {

				var _waitForWidth = function() {
					if (that.container.clientWidth > 0) {
						Dsq.Utils.fixIframesIE(that.container.id);
					} else {
						window.setTimeout(_waitForWidth, 100);
					}
				};
				_waitForWidth();

				that._once = false;
				that.receiver.onresize = function() {
					if (!that._once) {
						Dsq.Utils.fixIframesIE(that.container.id);
					}
					that._once = true;
				};
			}
		}

		that.container.appendChild(that.receiver);
	};


	var _createReceiverForPostMessage = function() {

		var receiver_onload = function() {

			that.packetHandler.send();
			that._ready = true;
		};

		var id = PostMessagePacket._get_unique_id();
		var receiverId = 'child_' + id;


		ParentMessenger['_receiver_onload_' + receiverId] = receiver_onload;

		that.container.innerHTML += '<iframe ' +
			'src="' + childUrl + '" ' +
			'id="' + receiverId + '" ' +
			'name="' + receiverId + '" ' +
			'onload="ParentMessenger._receiver_onload_' + receiverId +'();" ' +
			'></iframe>';

		that.receiver = document.getElementById(receiverId).contentWindow;
		that.packetHandler = new PostMessagePacket(that.receiver, receiveCallback, id, receiverId);
		that._listener = that.packetHandler.createListener();
	};

	if (typeof window.postMessage == 'function') {
		_createReceiverForPostMessage();
	} else {
		_createReceiverForFragmentPacket();
	}

};

ParentMessenger.prototype.sendMessage = function(message) {
	var that = this;
	if (!this._ready) {

		window.setTimeout(function() { that.sendMessage(message); }, 10);
		return;
	}
	this.packetHandler.send(message);
	return true;
};

Dsq.NewFrames = function(url) {
	this.url = url;
};

Dsq.NewFrames.prototype.init = function(onFailure) {
	var that = this;

	try {
		this.messenger = new ParentMessenger(this.url, Dsq.jsonData.integration.receiver_url, this.container, this.receive_callback);
	} catch(e) {
		if (typeof onFailure == 'function') {
			onFailure();
		}
	}

	if (typeof onFailure == 'function') {
		var iId = window.setInterval(function() {
			if (typeof that.messenger == 'undefined') {
				window.clearInterval(iId);
				return;
			}
			if (that.messenger._ready) {
				window.clearInterval(iId);
			} else if (that.messenger._error) {
				window.clearInterval(iId);
				onFailure();
			}
		}, 10);
	}
};

Dsq.NewFrames.prototype._execute = function(method, args, callback) {
	var that = this;
	if (typeof that.messenger == 'undefined') {
		return false;
	}
	JsonRpc.execute(
		function(msg) { that.messenger.sendMessage(msg); },
		method,
		args || [],
		callback);
	return true;
};

Dsq.ReplyFrame = function(container, parent_post_id) {
	var that = this;
	this.container = container;
	this.parent_post_id = parent_post_id;

	var sendFunc = function(msg) {

		Dsq.Debug.log('Dsq.ReplyFrame.sendFunc');
		that.messenger.sendMessage(msg);
	};


	var postComment_onSuccess = function(response) {
		Dsq.jsonData.posts[response.message.id] = response.message.post_meta;
		if (!Dsq.jsonData.users[response.message.post_meta.user_key]) {
			Dsq.jsonData.users[response.message.post_meta.user_key] = response.message.user_meta;
		}


		var reply_position = (typeof(disqus_insert_wrt_sort) == 'undefined' 
			? (Dsq.jsonData.forum.reply_position ? -1 : null) 
			: (Dsq.jsonData.request.sort == 2 ? null : -1));
		
		if (response.message.post_meta.approved) {
			Dsq.Post.insert(response.message.post_meta.parent_post_id || reply_position, response.message.id, response.message.post_meta.message);
		}

		Dsq.Templates.postComment_onSuccess(response, parent_post_id, response.message.id);
	};

	var postComment_onFailure = function(response) {
		Dsq.Popup.popModal(response.message, 'Error');
		Dsq.Templates.postComment_onFailure(response, parent_post_id, response.message.id);
	};

	var editComment_onSuccess = function(response) {
		var post_id = parent_post_id;
		var message = Dsq.$('dsq-comment-message-' + post_id);
		
		message.innerHTML = response.message;
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};
	
	var editComment_onFailure = function(response) {
		var post_id = parent_post_id;
		
		Dsq.Popup.popModal('Sorry, there was an error editing this comment.', 'Edit Error');
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};

	var getUserByEmail_onSuccess = function(response) {
		var msg = response.message;
		var fields = Dsq.Templates.getFormFields(parent_post_id);

		if (msg.username) {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'login', {
				'username': msg.username,
				'display_name': msg.display_name,
				'avatar_url': msg.avatar_url,
				'verified': msg.verified,
				'email': fields.email.value
			});
		} else {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'register');
		}
	};

	var validateAuth_onSuccess = function(response, auth_choice) {
		Dsq.Templates.postComment(parent_post_id, null, true, auth_choice);
	};

	var validateAuth_onFailure = function(response, auth_choice) {
		var pid = parent_post_id ? '-' + parent_post_id : '';
		var msg = response.message;

		if (auth_choice == 'register') {
			var fields = ['email', 'username', 'password'];

			for (var i = 0; i < fields.length; i++) {
				var field = fields[i];
				var errorDiv = Dsq.$('dsq-' + field + '-errors' + pid);

				if (msg[field]) {
					errorDiv.innerHTML = msg[field];
				} else {
					errorDiv.innerHTML = '';
				}
			}
		} else if (auth_choice == 'login') {
			Dsq.$('dsq-lightbox-errors' + pid).innerHTML = '<p>We couldn\'t log you in. Please verify your login.</p>';
		}
		
		Dsq.Templates.setLoadingButton(false);
	};

	this.receive_callback = JsonRpc.createHandler(sendFunc, {
		'postComment.onSuccess': postComment_onSuccess,
		'postComment.onFailure': postComment_onFailure,
		'editComment.onSuccess': editComment_onSuccess,
		'editComment.onFailure': editComment_onFailure,		
		'getUserByEmail.onSuccess': getUserByEmail_onSuccess,
		'validateAuth.onSuccess': validateAuth_onSuccess,
		'validateAuth.onFailure': validateAuth_onFailure,
		'reload': function() { window.location.reload(); }
	});

	this.url = Dsq.Urls.REPLY +
		'?' + (new Date()).getTime() +
		'&f=scobleizer' +
		'&t=ray_ozzie_delivers_with_live_mesh' +
		'&ff=' + Dsq.Thread.ff +
		'&default_text=' + encodeURIComponent(disqus_default_text) +
		'&ifrs=' + encodeURIComponent(disqus_iframe_css);
	if (this.parent_post_id) {
		this.url += '&parent_post=' + this.parent_post_id;
	}
};

Dsq.ReplyFrame.prototype = new Dsq.NewFrames(Dsq.ReplyFrame.url);

Dsq.ReplyFrame.prototype.post = function(author_name, author_email, author_url, authenticate, sharing_services, subscribe) {
	this._execute('postComment', [author_name, author_email, author_url, authenticate, sharing_services, subscribe]);
};

Dsq.ReplyFrame.prototype.edit = function(post_id, message) {
	this._execute('editComment', [post_id, message]);
};

Dsq.ReplyFrame.prototype.setState = function(parent_post_id, depth) {
	this._execute('setState', [parent_post_id, depth]);
};

Dsq.ReplyFrame.prototype.getUserByEmail = function(email) {
	this._execute('getUserByEmail', [email]);
};

Dsq.ReplyFrame.prototype.validateAuth = function(auth_choice, email, username, password) {
	this._execute('validateAuth', [auth_choice, email, username, password]);
};

Dsq.ReplyFrame.prototype.authenticateFacebook = function(session, forum_url) {
	this._execute('authenticateFacebook', [session, forum_url]);
};

	Dsq.Facebook = function() {
	var that = this;

	var handleSessionData = function(session) {

		var forum_url = Dsq.jsonData.forum.url;




		if (typeof disqus_facebook_forum != 'undefined') {
			forum_url = disqus_facebook_forum;
		}
		Dsq.frames.reply_0.authenticateFacebook(session, forum_url);
	};

	var onLogin = function() {
		FB.Connect.getSignedPublicSessionData(handleSessionData);
	};

	this.login = function() {
		FB.Connect.requireSession(onLogin, true);
	};
};
Dsq.Facebook = new Dsq.Facebook();


	






Dsq.Themes = {};

Dsq.Themes.narcissus = new function() {
	this.addPostContainer = 'dsq-form-area';
	this.textareaContainer = 'dsq-textarea-wrapper';



	
	this.header = function() {
		var comments_count, total_posts, num_posts;
		var html = '';
		var missing_perm_tmpl;

		if (Dsq.jsonData.request.missing_perm) {
			missing_perm_tmpl = Dsq.Templates.missingPermissions();
			if (missing_perm_tmpl) {
				html += '<div class="dsq-missing-permissions">' + missing_perm_tmpl + '</div>';
			}
		}

		total_posts = Dsq.jsonData.thread.total_posts;
		num_posts = Dsq.jsonData.thread.num_posts;

		if (total_posts) {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_FULL(total_posts, num_posts);
		} else {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_WITHOUT_PAGINATION(num_posts);
		}

		html += ' \
		<div id="dsq-comments-title"> \
			<h3>' + comments_count + '</h3> \
		</div> \
		';

		html += ' \
		<div class="dsq-options"> \
			<span class="dsq-item-sort">'
				+ Dsq.Strings.SORT_BY + ' \
				<select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);"> \
					<option value="hot" ' + (Dsq.jsonData.request.sort == 4 ? 'selected="selected"' : '') + '>' + Dsq.Strings.POPULAR_NOW + '</option> \
					<option value="best" ' + (Dsq.jsonData.request.sort == 3 ? 'selected="selected"' : '') + '>' + Dsq.Strings.BEST_RATING + '</option> \
					<option value="newest" ' + (Dsq.jsonData.request.sort == 2 ? 'selected="selected"' : '') + '>' + Dsq.Strings.NEWEST_FIRST + '</option> \
					<option value="oldest" ' + (Dsq.jsonData.request.sort == 1 ? 'selected="selected"' : '') + '>' + Dsq.Strings.OLDEST_FIRST + '</option> \
				</select> \
				&nbsp; \
			</span> \
			<span class="dsq-subscribe-email"> \
				<img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle"> \
				<span id="dsq-subscribe">'
					+ (Dsq.jsonData.context.subscribed
						? '<a href="#" onclick="Dsq.Thread.subscribe(0); return false">' + Dsq.Strings.UNSUBSCRIBE + '</a>'
						: '<a href="#" onclick="Dsq.Thread.subscribe(1); return false">' + Dsq.Strings.SUBSCRIBE_BY_EMAIL + '</a>')
				+ '</span> \
			</span> \
			<span class="dsq-subscribe-rss" style="width:12px;height:12px;vertical-align:middle"> \
				<img src="http://media.disqus.com/images/embed/bullet-feed.png" alt="" /> \
				<a href="http://scobleizer.disqus.com/ray_ozzie_delivers_with_live_mesh/latest.rss">' + Dsq.Strings.SUBSCRIBE_BY_RSS + '</a> \
			</span> \
		</div> \
		';

		
		

		return html;

	};
	
	this.footer = function() {
		var html = '';

		html += Dsq.Templates.pagination();

		
		
			html += Dsq.Templates.realtime();
			html += Dsq.Templates.showThreadSettings();
			html += Dsq.Templates.postBox();

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		


		if (Dsq.jsonData.request.is_global_moderator) {
 			html += ' \
				<div class="dsq-global-moderator-extras">'
					+ '<strong>shortname:</strong> ' + Dsq.jsonData.forum.url
					+ '<strong>thread id:</strong> ' + Dsq.jsonData.thread.id
					+ '<strong>thread slug:</strong> ' + Dsq.jsonData.thread.slug
				+ '</div> \
			';
		}

		return html;
	};
	
	this.realtime = function() {
		var html = '';
		
		if (Dsq.jsonData.realtime_enabled) {
			html += '<div id="dsq-realtime-options" class="dsq-options">'
					 + Dsq.Strings.REALTIME_UPDATING_IS + ' <strong id="dsq-realtime-status" style="text-transform: lowercase">' + Dsq.Strings.ENABLED + '</strong>. \
					 <a href="#" id="dsq-realtime-toggle" style="text-transform: capitalize"></a> \
					</div>';
		}

		if (!Dsq.jsonData.forum.streaming_realtime) {
			html += ' \
				<div style="display: none" id="dsq-realtime-alert" class="dsq-realtime-alert"><span id="dsq-realtime-queued"></span> <a href="#" id="dsq-realtime-show"></a></div> \
			';
		}
		
		return html;
	};

	this.showThreadSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return '';
		}

		html = '<div id="dsq-thread-settings" class="dsq-thread-settings">' + Dsq.Strings.MODERATOR_OPTIONS;
		html += '<a href="#" onclick="Dsq.Thread.showSettings(); return false;">' + Dsq.Strings.SETTINGS + '</a>';
		html += '<a href="#" onclick="Dsq.Thread.showModeratorActions(); return false;">' + Dsq.Strings.MODERATE + '</a>';
		if (Dsq.jsonData.forum.reactions_enabled && Dsq.jsonData.reactions.length === 0) {
			html += '<a href="#" onclick="Dsq.Reaction.reportMissingReactions(); return false;">'
						+ Dsq.Strings.REPORT_MISSING_REACTIONS
						+ '</a>';
		}
		html +='</div>';

		return html;
	};

	this.postBox = function(post_id, use_fallback_iframe) {


		var html;
		var display_sharing_options = Dsq.jsonData.request.is_authenticated;

		if (!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.disqus_auth_disabled && !Dsq.jsonData.forum.allow_anon_post) {
			return '';
		}
		
		if (Dsq.jsonData.request.is_remote) {


			if (!Dsq.jsonData.request.sharing.hasOwnProperty(Dsq.jsonData.request.remote_domain)) {
				display_sharing_options = false;
			}
		}
		
		if (post_id) {
			var _meta = Dsq.jsonData.posts[post_id];
			var userData = Dsq.jsonData['users'][_meta.user_key];				
		}
		
		var pid = post_id ? '-' + post_id : '';

		var _requestUserInfo = function() {
			var html;



			var user_has_email = false;

			html = '<div class="dsq-request-user-info"> <!-- // If authenticated --> \
				<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.LOGOUT + '?ctkn=' + Dsq.CSRF_TOKEN + '" class="dsq-request-user-logout">' + Dsq.Strings.LOGOUT + '</a> \
				<table> \
					<tr> \
						<td rowspan="2">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '')
								+ '<img src="' + Dsq.Urls.REQUEST_USER_AVATAR + '" width="48" height="48" class="dsq-request-user-avatar">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
						+ '</td> \
						<td class="dsq-request-user-name">'
								+ (Dsq.jsonData.request.is_remote
									 ? '<span class="dsq-badge-small dsq-badge-' + Dsq.jsonData.request.remote_domain + '">' + Dsq.jsonData.request.remote_domain + '</span>'
									 : (Dsq.jsonData.request.is_verified
											? '<span class="dsq-badge-small dsq-badge-verified">Verified</span>'
											: '<span class="dsq-badge-small dsq-badge-registered">Registered</span>'))
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? ' <a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '') 
								+ Dsq.jsonData.request.display_username 
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
							+  (Dsq.jsonData.request.is_remote && user_has_email ? ' <small>(<a href="#" onclick="Dsq.Popup.remoteAccountSettings(); return false;">change settings</a>)</small>' : '')
							+  (!Dsq.jsonData.request.is_remote && !Dsq.jsonData.forum.disqus_auth_disabled ? ' <small>(<a href="' + Dsq.jsonData.settings.disqus_url + '/profile/info/" target="_blank">change name</a> or <a href="' + Dsq.jsonData.settings.disqus_url + '/profile/avatar/" target="_blank">picture</a>)</small>' : '')
						+ '</td> \
					</tr> \
					<tr> \
						<td class="dsq-request-user-stats"> \
							<span><big>' + Dsq.jsonData.request.comments_count + '</big> ' + (Dsq.jsonData.request.comments_count == 1 ? 'comment' : 'comments') + '</span> \
							<span><big>' + Dsq.jsonData.request.likes_count + '</big> ' + (Dsq.jsonData.request.likes_count == 1 ? 'like' : 'likes') + '</span> \
							<span><big>' + Dsq.jsonData.request.points + '</big> ' + (Dsq.jsonData.request.points == 1 ? 'point' : 'points') + '</span> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';
			return html;
		};

		var _loginOptions = function() {
			var html;
			html = ' \
			<div class="dsq-authenticate"> \
				<p class="dsq-autheneticate-copy">'
				+ (Dsq.jsonData.forum.allow_anon_post
					? Dsq.Strings.YOU_ARE_COMMENTING_AS_A + ' <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. ' + Dsq.Strings.OPTIONAL + ': ' + Dsq.Strings.LOGIN_BELOW + '.'
					: Dsq.Strings.REQUIRED + ': ' + Dsq.Strings.PLEASE_LOGIN_BELOW_TO_COMMENT + '.')
				+ '</p> \
				<ul class="dsq-login-buttons">'
					+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Popup.login(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-disqus.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_fb_connect ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Facebook.login(); return false;"><img src="http://media.disqus.com/images/themes/narcissus/login-facebook.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_twitter_signin ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-twitter.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_openid ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.OpenID.requestURL(); return false" ><img src="http://media.disqus.com/images/themes/narcissus/login-openid.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_yahoo ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Yahoo.startYahooConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-yahoo.gif" /></a></li>' : '')
				+ '</ul> \
			</div> \
			';
			return html;
		};

		if (!Dsq.jsonData.context.show_reply) {


			if (!Dsq.jsonData.request.is_authenticated) {



				return '<div id="dsq-form-area" style="display:none"><div id="dsq-textarea-wrapper"></div></div>' + _loginOptions();
			} else {
				return '';
			}
		}

		html = ' \
		<div id="' + (post_id 
			? 'dsq-reply-post-' + post_id
			: 'dsq-new-post')
		 	+ '" class="dsq-post-area"> \
			<div class="dsq-dc-logo"> \
				<a href="http://disqus.com/comments" target="_blank"><img src="http://media.disqus.com/images/themes/narcissus/disqus-logo.png"></a> \
			</div>'
			+ (post_id 
				? '<h3>' + Dsq.Strings.REPLYING_TO + ' ' + userData.display_name + '</h3>'
				: '<h3>' + Dsq.Strings.ADD_NEW_COMMENT + '</h3>')
			+ (Dsq.jsonData.request.is_authenticated 
				? _requestUserInfo()
				: _loginOptions() )
			+ '<div id="dsq-form-area' + pid + '">'
			+ '<div class="dsq-textarea"> \
				<div class="dsq-textarea-wrapper" id="dsq-textarea-wrapper' + pid + '"></div> \
			</div>'
			+ (!Dsq.jsonData.request.is_authenticated
			? ' \
			<div class="dsq-post-fields"> \
				<table> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-name' + pid + '" type="text" value="' + (disqus_def_name ? disqus_def_name : (Dsq.jsonData.session.name ? Dsq.jsonData.session.name : Dsq.Strings.NAME + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'name\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'name\')" /></div></td> \
						<td class="dsq-post-fields-right"><div class="dsq-input-wrapper"><input id="dsq-field-website' + pid + '" type="text" value="' + (Dsq.jsonData.session.url ? Dsq.jsonData.session.url : Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')" class="dsq-placeholder') + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'website\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'website\')" /></div></td> \
					</tr> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-email' + pid + '" type="text" value="' + (disqus_def_email ? disqus_def_email : (Dsq.jsonData.session.email ? Dsq.jsonData.session.email : Dsq.Strings.EMAIL + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'email\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'email\')" /></div></td> \
						<td class="dsq-post-fields-right"> \
							<div class="dsq-subscribe"> \
								<a href="#" onclick="Dsq.Templates.chooseSubscribe(' + post_id + '); return false" class="dsq-subscribe-menu"><span id="dsq-subscribe-select' + pid + '">' + (Dsq.jsonData.request.subscribe_on_post ? Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL : Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS) + '</span> <small>&#9660;</small></a> \
								<ul class="dsq-panel" id="dsq-subscribe-menu' + pid + '"> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(2, this, ' + post_id + '); return false">' + Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL + '</a></li> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(0, this, ' + post_id + '); return false">' + Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS + '</a></li> \
								</ul> \
								<input id="dsq-subscribe-on-post' + pid + '" type="hidden" value="' + Dsq.jsonData.request.subscribe_on_post + '" /> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '> \
					<button type="button" class="dsq-button-small" onfocus="document.getElementById(\'dsq-post-button' + pid + '\').focus();"><span>' + Dsq.Strings.SHARING_OPTIONS + ' <small>&#9660;</small></span></button> \
					<div class="dsq-panel"> '
						+ (Dsq.jsonData.request.sharing.twitter !== undefined
								&& Dsq.jsonData.request.sharing.twitter.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-twitter' + pid + '"'
								  + (Dsq.jsonData.request.sharing.twitter.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-twitter' + pid + '">' + Dsq.Strings.SHARE_ON + ' Twitter</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.facebook
								&& (Dsq.jsonData.request.sharing.facebook.enabled === true ||
										(Dsq.jsonData.request.is_remote && Dsq.jsonData.request.remote_domain == 'facebook'))
							? '<div><input type="checkbox" id="dsq-sharing-facebook' + pid + '"'
									+ (Dsq.jsonData.request.sharing.facebook.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-facebook' + pid + '">' + Dsq.Strings.SHARE_ON + ' Facebook</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.yahoo !== undefined
								&& Dsq.jsonData.request.sharing.yahoo.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-yahoo' + pid + '"'
									+ (Dsq.jsonData.request.sharing.yahoo.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-yahoo' + pid + '">' + Dsq.Strings.SHARE_ON + ' Yahoo!</label> \
								</div>'
							: '')
						+ (Dsq.jsonData.request.sharing.tumblr !== undefined
								&& Dsq.jsonData.request.sharing.tumblr.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-tumblr' + pid + '"'
									+ (Dsq.jsonData.request.sharing.tumblr.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-tumblr' + pid + '">' + Dsq.Strings.SHARE_ON + ' Tumblr</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.wordpress !== undefined
								&& Dsq.jsonData.request.sharing.wordpress.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-wordpress' + pid + '"'
									+ (Dsq.jsonData.request.sharing.wordpress.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-wordpress' + pid + '">' + Dsq.Strings.SHARE_ON + ' Wordpress</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.movabletype !== undefined
							  && Dsq.jsonData.request.sharing.movabletype.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-movabletype' + pid + '"'
									+ (Dsq.jsonData.request.sharing.movabletype.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-movabletype' + pid + '">' + Dsq.Strings.SHARE_ON + ' Movable Type</label> \
							   </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.typepad !== undefined
							  && Dsq.jsonData.request.sharing.typepad.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-typepad' + pid + '"'
									+ (Dsq.jsonData.request.sharing.typepad.auto === true ? 'checked=true' : '') + '/> \
								  <label for="dsq-sharing-typepad' + pid + '">' + Dsq.Strings.SHARE_ON + ' TypePad</label> \
							   </div>'
							: '')
						+ '<div><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections/" target="_blank" class="dsq-configure-options">' + Dsq.Strings.CONFIGURE_OPTIONS + '</a></div>'
					+ '</div> \
				</div>'
				+ '<button type="button" class="dsq-button" id="dsq-post-button' + pid + '" onclick="Dsq.Templates.postComment(' + post_id + ', this, false)"><span>' + Dsq.Strings.POST_AS + ' '
				+ (Dsq.jsonData.request.display_username
					? Dsq.jsonData.request.display_username
					: Dsq.Strings.GUEST)
				+ '</span></button>'
				+ (post_id
					? '<button type="button" class="dsq-button" id="dsq-cancel-button' + pid + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"><span>' + Dsq.Strings.CANCEL + '</span></button>'
					: '')
			+ '</div>'
			+ '</div>' // end dsq-form-area
		+ '</div> \
		';
		
		return html;
	};




	this.appendPost = function(post_id) {
		var html = '<div id="dsq-append-post-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		html = ' \
		<table> \
			<tr> \
				<td id="dsq-header-avatar-' + post_id + '" class="dsq-header-avatar" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
					<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
					+ (Dsq.jsonData.forum.show_avatar
					? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
					: '')
				+ '</a> \
				</td> \
				<td class="dsq-comment-header-meta"> \
		';

		
		return html;
	};
	
	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var html;
		var parent_display_name = '';
		
		if(_meta.parent_post_id) {

			var _parent_meta = Dsq.jsonData.posts[_meta.parent_post_id];

			if (_parent_meta) {
				var parentUserData = Dsq.jsonData['users'][_parent_meta.user_key];
				parent_display_name = parentUserData.display_name;
			}
		}

		html = ' \
		<img src="http://media.disqus.com/images/themes/narcissus/moderator.png" class="dsq-moderator-star" title="Moderator" /> \
		<span class="dsq-comment-header-time"><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')" title="Permalink">' + (_meta.is_realtime ? Dsq.Strings.JUST_NOW : _meta.date) + '</a></span> '
		+ (_meta.parent_post_id && parent_display_name
			? '<a href="#comment-' + _meta.parent_post_id + '" title="Jump to comment">in reply to ' + parent_display_name + '</a>'
			: '')
		+ '</td> \
		<td id="dsq-like-pts-' + post_id + '" class="dsq-comment-header-likes">'
		+ (_meta.points
			? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this.'
			: '')
		+ '</td> \
		</tr> \
		</table> \
		';
		return html;
	};

	this.preBody = function(post_id) {
		var html = '';
		return html;
	};

	this.postFooter = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed || !_meta.approved) { return ''; }
		
		html = ' \
		<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
			<div class="dsq-comment-footer-left">'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
					? '<a href="#" onclick="Dsq.Templates.moderateOptions(' + post_id+ '); return false">' + Dsq.Strings.MODERATE + '</a>'
					: '')
				+ '<a href="#" id="dsq-post-report-' + post_id + '" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">' + Dsq.Strings.FLAG + '</a> \
			</div> \
			<div class="dsq-comment-footer-right">'
				+ (_meta.votable 
					? '<span id="dsq-like-' + post_id + '" class="dsq-like">'
					+ (!_meta.up_voted
						? '<button type="button" class="dsq-button-small" onclick="Dsq.Post.rate(this, ' + post_id + ', 1)" >Like</button>'
						: 'You liked this.&nbsp;&nbsp;')
					+ '</span>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<button type="button" class="dsq-button-small dsq-post-edit" onclick="Dsq.Post.edit(this, ' + post_id + ')" >' + Dsq.Strings.EDIT + '</button>'
					: '')
				+ (_meta.can_reply
					? '<span class="dsq-comment-footer-reply" id="dsq-comment-footer-reply-' + post_id + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"> \
						<button type="button" class="dsq-button-small">' + Dsq.Strings.REPLY + '</button> \
						<button type="button" class="dsq-comment-footer-reply-tab">' + Dsq.Strings.REPLY + '</button><span></span> \
					</span>'
					: '')
			+ '</div> \
		</div> \
		';
		
		return html;
	};



	
	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		var item = '<li class="dsq-comment dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-comment-header"> \
			<table> \
			<tr> \
			<td class="dsq-header-avatar"> \
			';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'" class="dsq-avatar">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {

			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar92.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += (reaction.author_url && reaction.author_url !== ''
				? '</a>'
				: '')
			+ '</td>'
			+ '<td><cite class="dsq-comment-cite">' + reaction.author_name + '</cite> <span class="dsq-comment-header-time">' + reaction.date_created + '</span></td>'
			+ '<td class="dsq-comment-header-likes"></td>'
			+ '</tr></table></div>' // end dsq-comment-header
			+ '<div class="dsq-reaction-header" \
				<table> \
					<tr> \
						<td class="dsq-reaction-header-left">'
							+ '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png" />'
							+ ' From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
							+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
						+ '</td>'
						+ '<td class="dsq-reaction-header-right">';

			if(reaction.retweets) {
				var num_retweets = reaction.retweets.length;
				if (num_retweets > 0) {
					if (num_retweets == 1) {
						item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
					} else {
						item += (num_retweets + ' more retweets from ');
						item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
						var n_tweets = (num_retweets > 3) ? 3 : num_retweets;
						item += Dsq.Templates.showRetweets(reaction.id, n_tweets);
						if (n_tweets != num_retweets) {
							item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
								+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
						}
					}
				}
			}	
			item += '</td></tr> \
			</table> \
			</div>' // end dsq-reaction-header
			+ '<div class="dsq-comment-body"> \
				<div class="dsq-comment-message">' + reaction.body + '</div>'
			+ '</div> \
			<div class="dsq-comment-footer"> \
				<div class="dsq-comment-footer-left"> \
				</div>'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator 
					? ' \
					<div class="dsq-comment-footer-right"> \
						<button type="button" class="dsq-button-small dsq-hide-reaction" onclick="Dsq.Reaction.hide(' + reaction.id + ')">Hide</button> \
					</div>'
					: '')
			+ '</div>'
		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}

		return '<h3 id="dsq-reactions-title" class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-container"> \
			<table> \
				<tbody> \
					<tr> \
						<td class="dsq-popup-tl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-tr"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-b"></td> \
						<td class="dsq-popup-body"> \
							<div class="dsq-popup-content"> \
								<div class="dsq-popup-title"> \
									<button type="button" class="dsq-button-small" style="float:right" onclick="Dsq.Popup._closePopup(null, true)">Close</button>'
									+ content['header'] 
								+ '</div>'
								+ content['body']
							+ '</div> \
							<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
						</td> \
						<td class="dsq-popup-b"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-bl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-br"></td> \
					</tr> \
				</tbody> \
			</table> \
		</div> \
		';
	};



	
	this.chooseSubscribe = function(post_id) {

		var pid = post_id ? '-' + post_id : '';
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		menu.style.display = menu.style.display == 'block' ? 'none' : 'block';
		
	};
	
	this.setSubscribe = function(value, el, post_id) {

		var pid = post_id ? '-' + post_id : '';
		var input = Dsq.$('dsq-subscribe-on-post' + pid);
		var select = Dsq.$('dsq-subscribe-select' + pid);
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		select.innerHTML = el.innerHTML;
		input.value = value;
		this.chooseSubscribe(post_id);
	};
	
	this.getFormFields = function(post_id) {

		var fields = {};
		var pid = post_id ? '-' + post_id : '';
		var name = Dsq.$('dsq-field-name' + pid);
		var email = Dsq.$('dsq-field-email' + pid);
		var website = Dsq.$('dsq-field-website' + pid);
		var username = Dsq.$('dsq-field-username' + pid);
		var password = Dsq.$('dsq-field-password' + pid);

		fields = {
			'name': name,
			'email': email,
			'website': website,
			'username': username,
			'password': password
		}
		
		return fields;
	}
	
	this.validateFields = function(post_id) {
		
		if(Dsq.jsonData.request.is_authenticated) { return true; }
		
		var fields = Dsq.Templates.getFormFields(post_id);
		
		var nameField = fields.name;
		var websiteField = fields.website;
		var emailField = fields.email;
		
		websiteField.value = (websiteField.value == Dsq.Templates.placeholder['website']) ? '' : websiteField.value;
		
		var v = [{

			validator: Dsq.Validators.name,
			value: nameField.value
		}, {

			validator: Dsq.Validators.email,
			value: emailField.value
		}, {

			validator: Dsq.Validators.url,
			value: websiteField.value
		}];
		
		return Dsq.Validators.validate(v, function(e) { Dsq.Popup.popModal(e, 'Oops...') } );
	};
	
	this.checkExistingUser = function(post_id) {
		var fields = Dsq.Templates.getFormFields(post_id);		
		Dsq.Popup.loading(post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].getUserByEmail(fields.email.value);
		} else {
			Dsq.frames['reply_0'].getUserByEmail(fields.email.value);
		}
	};

	this.validateAuth = function(el_clicked, post_id, auth_choice) {
		var fields = Dsq.Templates.getFormFields(post_id);
		var email = fields.email ? fields.email.value : '';
		var username = fields.username ? fields.username.value : '';
		var password = fields.password ? fields.password.value : '';
		
		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].validateAuth(auth_choice, email, username, password);
		} else {
			Dsq.frames['reply_0'].validateAuth(auth_choice, email, username, password);
		}
	};

	this.lightboxUpdateEmail = function(post_id, new_email) {
		var fields = Dsq.Templates.getFormFields(post_id);
		fields.email.value = new_email;
	};

	this.lightboxAuthenticate = function(post_id, auth_choice, auth_data) {
		var title, body;
		var pid = post_id ? '-' + post_id : '';

		if(typeof(auth_data) == 'undefined') {
			var auth_data = Dsq.Templates.getFormFields(post_id);
		}

		d = auth_data;

		switch(auth_choice) {
			case 'register':
				var suggestedUsername = d.name.value.replace(/[^a-zA-Z0-9-]/g,'').toLowerCase();
			
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Register a <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';

				body = ' \
				<ul class="dsq-lightbox-register-reasons"> \
				<li>Verify your comments</li> \
				<li>Edit and delete comments</li> \
				<li>Manage comments and replies</li> \
				</ul> \
				';

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Email</td> \
							<td><input type="text" value="' + d.email.value + '" onchange="Dsq.Templates.lightboxUpdateEmail(' + post_id + ', this.value)" /><div id="dsq-email-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Username</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + suggestedUsername + '"/><div id="dsq-username-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Password</td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /><div id="dsq-password-errors' + pid + '"></div></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'login\'); return false">Login instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Register and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			case 'login':
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Login to your <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';
				body = '';
				
				if(d.avatar_url) {
					body += '<div class="dsq-lightbox-recognized"><table><tr>';
					body += '<td><img src="' + d.avatar_url + '" alt="" /></td>';
					body += '<td><span class="dsq-badge ' + (d.verified ? 'dsq-badge-verified' : 'dsq-badge-registered') + '">' + (d.verified ? 'Verified' : 'Registered') + '</span></td>';
					body += '<td>Hey <strong>' + d.display_name + '</strong>, is that you? Login below to claim this comment.';
					body += '</tr></table></div>';
				}

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Username or Email</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + (d.avatar_url ? d.username : '') + '" /></td> \
						</tr> \
						<tr> \
							<td>Password <a href="http://disqus.com/forgot" target="_blank">(cannot log in?)</a></td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'register\'); return false">Register instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Login and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			default:
				break;
		}
		Dsq.Popup.lightbox(body, title, post_id);
		Dsq.$('dsq-field-username' + pid).focus();
	};
	
	this.buttonsToRestore = [];
	this.setLoadingButton = function(btn, post_id) {
		var pid = post_id ? '-' + post_id : '';
		if (btn) {

			var loadingBtn = document.createElement('button');
			loadingBtn.id = btn.id + '-loading';
			loadingBtn.innerHTML = '<img src="http://media.disqus.com/images/loading-lite.gif" alt="" /> ' + Dsq.Strings.JUST_A_MOMENT;
			loadingBtn.className = btn.className + ' dsq-post-loading';
			btn.parentNode.appendChild(loadingBtn);
			btn.style.display = 'none';
			var cancelBtn = Dsq.$('dsq-cancel-button' + pid);
			if(cancelBtn) { cancelBtn.style.display = 'none'; this.buttonsToRestore.push(cancelBtn); }
			this.buttonsToRestore.push(btn);
		} else {

			var buttons = this.buttonsToRestore;
			for(var i = 0; i < buttons.length; i++) {
				buttons[i].style.display = 'inline';
				Dsq.Utils.deleteNode(Dsq.$(buttons[i].id + '-loading'));
			}
		}
		
	};

	this.postComment = function(post_id, el_clicked, force, auth_choice) {
		var append_id = post_id ? '-' + post_id : '';
		var fields = Dsq.Templates.getFormFields(post_id);

		if (Dsq.Templates.validateFields(post_id)) {

			if (!Dsq.jsonData.request.is_authenticated && !force &&
				((!Dsq.Utils.readCookie('skipped_auth') && !disqus_skip_auth && !Dsq.jsonData.forum.disqus_auth_disabled) || !Dsq.jsonData.forum.allow_anon_post)) {
				Dsq.Templates.checkExistingUser(post_id);
				return false;
			}
			var params = [];
			if (!Dsq.jsonData.request.is_authenticated) {
				params.push(fields.name.value,
					fields.email.value,
					fields.website.value);

				if (auth_choice == 'login' || auth_choice == 'register') {
					params.push({
						auth_choice: auth_choice,
						username: fields.username.value,
						password: fields.password.value,
						email: fields.email.value
					});
				} else {
					params.push(null);
				}

				params.push(null /* sharing options */, Dsq.$('dsq-subscribe-on-post' + append_id).value);
			} else {
				var service_checked = function(name) {
					var el = Dsq.$('dsq-sharing-' + name + append_id);
					return (el !== null && el.checked === true) ? '1' : '0';
				};
				params.push(null, null, null, null, {
					tw: service_checked('twitter'),
					fb: service_checked('facebook'),
					tr: service_checked('tumblr'),
					wp: service_checked('wordpress'),
					mt: service_checked('movabletype'),
					tp: service_checked('typepad'),
					yh: service_checked('yahoo')
				});
			}

			var frame = Dsq.frames['reply_' + (post_id ? post_id : 0)];
			frame.post.apply(frame, params);

			if (el_clicked) {
				Dsq.Templates.setLoadingButton(el_clicked, post_id);
			}
			
			if (force) {
				Dsq.Utils.createCookie('skipped_auth', true);	
			}
			
		} else {
			return false;
		}
	};

	this.editComment = function(el_clicked, post_id) {
		var edited_message = Dsq.$('dsq-edit-textarea-' + post_id).value;

		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		Dsq.frames['edit_' + post_id].edit(post_id, edited_message);
	};

	this.toggleEdit = function(post_id) {
		var body = Dsq.$('dsq-comment-body-' + post_id);
		var message = Dsq.$('dsq-comment-message-' + post_id);

		if (!Dsq.Post.stateEditToggled[post_id]) {


			message.style.display = 'none';
			if (Dsq.$('dsq-edit-' + post_id)) {
				Dsq.$('dsq-edit-' + post_id).style.display = 'block';
			} else {

				var edit_area = document.createElement('div');
				edit_area.id = 'dsq-edit-' + post_id;
				edit_area.className = 'dsq-edit dsq-textarea';
				edit_area.innerHTML = ' \
				<div class="dsq-textarea-wrapper"> \
					<textarea class="dsq-edit-textarea" id="dsq-edit-textarea-' + post_id + '">' + message.innerHTML + '</textarea> \
				</div> \
				<div class="dsq-save-edit"> \
					<button type="button" onclick="Dsq.Templates.editComment(this, ' + post_id + ')" class="dsq-button-small">Save Edit</button> \
				</div> \
				<div id="dsq-edit-iframe-' + post_id + '" style="display: none"></div> \
				';

				body.appendChild(edit_area);

				if (!Dsq.frames['edit_' + post_id]) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['edit_' + post_id] = new Dsq.ReplyFrame(Dsq.$('dsq-edit-iframe-' + post_id), post_id);
					Dsq.frames['edit_' + post_id].init();
					Dsq.frames['edit_' + post_id].setState(post_id, _meta.depth);
				}
			}
		} else {

			message.style.display = 'block';
			Dsq.$('dsq-edit-' + post_id).style.display = 'none';
		}
		
		Dsq.Post.stateEditToggled[post_id] = !Dsq.Post.stateEditToggled[post_id];
	};
	
	this.edit = function(el, post_id) {

		Dsq.Templates.toggleEdit(post_id);
	};

	this.toggleReply = function(post_id, button) {
		
		if(!this.stateReplyToggled[post_id]) {

			if (Dsq.$('dsq-reply-post-' + post_id)) {
				Dsq.$('dsq-append-post-' + post_id).style.display = 'block';
			} else {
				Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id);
				var container = Dsq.$('dsq-textarea-wrapper-' + post_id);
				if (!Dsq.frames['reply_' + post_id] && container) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['reply_' + post_id] = new Dsq.ReplyFrame(container, post_id);
					Dsq.frames['reply_' + post_id].init(function() {

						Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id, true);
						Dsq.$('dsq-form-area-' + post_id).innerHTML = '';

						var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
						Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-form-area-' + post_id), post_id, {theme: theme});

					});
					Dsq.frames['reply_' + post_id].setState(post_id, _meta.depth);
				}
			}
			Dsq.$('dsq-append-post-' + post_id).className = 'dsq-append-post';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply-active';
			
		} else {

			Dsq.$('dsq-append-post-' + post_id).style.display = 'none';
			Dsq.$('dsq-append-post-' + post_id).className = '';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply';
		}
		
		this.stateReplyToggled[post_id] = !this.stateReplyToggled[post_id];

		if(Dsq.Utils.ie && this.stateReplyToggled[post_id]) {

		}

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: post_id,
			opened: this.stateReplyToggled[post_id]
		});
	};
	
	this.moderateOptions = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		if(!Dsq.jsonData.request.is_moderator && !Dsq.jsonData.request.is_global_moderator) { return false; }

		var html;
		
		html = ' \
		<div class="dsq-moderate-options"> \
		<table>'
		+ (_meta.email ? '<tr><td>Email</td><td>' + _meta.email + '</td></tr>' : '')
		+ (_meta.ip ? '<tr><td>IP address</td><td>' + _meta.ip + '</td></tr>' : '')
		+ '<tr> \
			<td>Actions</td> \
			<td><ul>'
			+ (Dsq.jsonData.request.moderator_can_edit
				? '<li><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Edit Comment</a></li>'
				: '')
			+ '<li><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); Dsq.Popup._closePopup(null, true); return false;">Delete Comment</a></li> \
			<li><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Mark Spam</a></li> \
			<li><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li> \
			</ul></td> \
			</table> \
		</div> \
		';
		
		html += '<p>Go to the full <a href="http://disqus.com/comments/moderate/" target="_blank">moderate panel</a> for more options.</p>';
		
		return Dsq.Popup.popModal(html, 'Moderate Options', post_id);
	};
	
	this.placeholder = {
		'class': 'dsq-placeholder',
		'name': Dsq.Strings.NAME,
		'email': Dsq.Strings.EMAIL,
		'website': Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')'
	};
	
	this.handlePlaceholder = function(evt, el, key) {
		var placeholder = Dsq.Templates.placeholder[key];
		var className = Dsq.Templates.placeholder['class'];
		
		switch(evt.type) {
			case 'focus':
				if(el.value == placeholder) {
					el.value = '';
					el.className = '';
				}
				break;

			case 'blur':
				if(el.value == '') {
					el.value = placeholder;
					el.className = className;
				}
				break;
			default:
				break;
		}
	};
	
	this.paginate = function(page, el_clicked) {

		var extra_params = '';

		if(typeof disqus_per_page != 'undefined') {
			extra_params += '&per_page=' + disqus_per_page;
		}
		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			Dsq.Templates.setLoadingButton(el_clicked);
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'ray_ozzie_delivers_with_live_mesh'
			+ '&p='		+ page
			+ extra_params);
	};
	
	
	this.rate = function(el, id, vote) {


		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
				Dsq.$('dsq-like-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
			}
			Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/vote.js'
				+ '?post_id='    + id
				+ '&vote='        + vote);
		} else {
			Dsq.Popup.login('To rate, please log in');
		}
	};

	this.voted = function(post_id, points, vote) {

		Dsq.$('dsq-like-pts-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this.';

		if(vote) {
			Dsq.$('dsq-like-' + post_id).innerHTML = 'You liked this.&nbsp;&nbsp;';
		}
	};




	this.postComment_onSuccess = function(response, parent_post_id, post_id) {
		var approved = response.message.post_meta.approved;

		if (parent_post_id) {
			Dsq.Post.toggleReply(parent_post_id);
		}

		Dsq.Popup._closePopup(null, true);
		
		if (approved) {
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		} else {			
			var unapproved_msg = 'Thanks for posting!\
	 Your comment must be approved by a moderator before appearing here.\
			';
			Dsq.Popup.popModal(unapproved_msg, 'Comment awaiting approval', post_id);
		}

		var sharing_results = response.message.sharing_results;
		var sharing_errors = '';
		for (var service in sharing_results) {
			if (sharing_results.hasOwnProperty(service) === true) {
				if (sharing_results[service].error === true) {
					sharing_errors += service + ', ';
				}
			}
		}

		if (sharing_results.facebook && sharing_results.facebook.callback) {
			FB.ensureInit(function() {
				FB.Connect.streamPublish('', sharing_results.facebook.attachment);
			});
		}

		if (sharing_errors !== '') {
			var message = 'Your comment was posted, but there were errors sharing with the following connections: ';
			message += sharing_errors.replace(/,\s$/, '');
			message += '<p><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections" target="_blank">Configure your connections here</a></p>'
			Dsq.Popup.popModal(message, 'Sharing options');
		}

		Dsq.Templates.setLoadingButton(false);
	};

	this.postComment_onFailure = function(response, parent_post_id, post_id) {

		Dsq.Templates.setLoadingButton(false);
	};
};




// TODO: It might be faster to use string methods to find all <li (...) </li> blocks and pass to Dsq.PostHandler manually.
Dsq.CommentsHandler = function(str, head, post_id, content, tail, offset, s) {
	var prepend_post = Dsq.Templates.prependPost(post_id);
	var append_post = Dsq.Templates.appendPost(post_id);

	content = content.replace(Dsq.POST_RE, Dsq.PostHandler);
	Dsq.Templates.postLoopCounter++;
	head = Dsq.Templates.Filters.commentContainer(post_id, head);
	return prepend_post + head + content + tail + append_post;
};

Dsq.PostHandler = function(str, h_head, post_id, h_content, h_tail, b_head, b_content, b_tail, offset, s) {
	var prepend_header = Dsq.Templates.postPrependHeader(post_id);
	var append_header = Dsq.Templates.postAppendHeader(post_id);
	var prepend_body = Dsq.Templates.preBody(post_id);
	var append_body = Dsq.Templates.postBody(post_id);
	var append_footer = Dsq.Templates.postFooter(post_id);

	b_content = b_content.replace(Dsq.POST_BODY_RE, Dsq.PostBodyHandler);
	return h_head + prepend_header + h_content + append_header + h_tail + b_head + prepend_body + b_content + append_body + b_tail + append_footer;
};

Dsq.PostBodyHandler = function(str, head, post_id, content, tail, offset, s) {
	content = Dsq.Templates.Filters.commentContent(post_id, content);
	return head + content + tail;
};

Dsq.MediaPostHandler = function(str, args, offset, s) {
	args = args.split(' ');
	if(args[0] == 'seesmic') {
		return '<br />' + Dsq.Templates.mediaSeesmic(args[1], args[2]);
	}
	return '';
};


/**
 * Shorcuts
 */
Dsq.$ = function(element) { return document.getElementById(element); };
Dsq.$b = document.body || document.getElementsByTagName('body')[0];


/**
 * Dsq.Debug: Logging functions.
 */

Dsq.Debug = new function() {this.log=function(s){};this.profile=function(f){if(typeof f == 'function')return f();else return eval(f);};};


/**
 * Dsq.Urls: URL paths
 */
Dsq.Urls = new function() {
	this.LOGIN = '/profile/login/';
	this.LOGOUT = '/logout/';
	this.REPLY = 'http://scobleizer.disqus.com/ray_ozzie_delivers_with_live_mesh/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://media.disqus.com/images/noavatar92.png';
};
// Dsq.Urls

/**
 * Dsq.Validators: Validation for form fields
 */
Dsq.Validators = new function() {
	this.VALID_EMAIL_RE = /^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)+\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i;
	this.name = function(name) {
		var error = false;

		if(typeof Dsq.Templates.placeholder !== 'undefined' &&
		   name == Dsq.Templates.placeholder.name) {
			error = true;
		}
		if(name.length <= 1) {
			error = true;
		}

		if(error) {
			return "Please enter a name to comment.";
		} else {
			return true;
		}
	};
	this.email = function(addr) {
		if(Dsq.Validators.VALID_EMAIL_RE.test(addr)) {
			return true;
		} else {
			return "Please enter a valid email to comment.";
		}
	};
	this.url = function(addr) {
		if(!addr || addr.indexOf('.') != -1) {
			return true;
		} else {
			return "Please check your website URL (this field is optional).";
		}
	};

	this.validate = function(bulk_validation, failure_callback) {
		failure_callback = failure_callback || function(e){ alert(e); };

		for(var i = 0; i < bulk_validation.length; i++) {
			v = bulk_validation[i];
			ret = v.validator(v.value);
			if(ret !== true) {
				failure_callback(ret);
				return false;
			}
		}
		return true;
	};
};

/**
 * Dsq.Utils: Generic utility functions.
 */
Dsq.Utils = new function() {
	this.ie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	this.ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	this.ie6 = (!window.XMLHttpRequest) ? true: false;
	this.webkit = navigator.userAgent.indexOf('AppleWebKit/') >= 0;
	this.gebiFromElementCollectionCache = {};
	this._styleSheet = null;

	this.gebiFromElement = function(el, id, tag) {
		// This only method only helps IE.
		if(!this.ie) {
			return Dsq.$(id);
		} else {
			var cacheKey = el.id + '-' + tag;
			tag = tag || 'div';
			if(typeof this.gebiFromElementCollectionCache[cacheKey] != 'undefined') {
				collection = this.gebiFromElementCollectionCache[cacheKey];
			} else {
				collection = el.getElementsByTagName(tag);
				this.gebiFromElementCollectionCache[cacheKey] = collection;
			}

			for(var i = 0; i < collection.length; i++) {
				if(collection[i].id == id) {
					return collection[i];
				}
			}
			return null;
		}
	};

	this.execOnReady = function(func) {
		var node = document.createElement('document:ready');
		try {
			node.doScroll('left');
			func();
			node = null;
		} catch(err) {
			setTimeout(function() { Dsq.Utils.execOnReady(func); }, 10);
		}
	};


	// Courtesy of http://www.quirksmode.org/js/cookies.html
	this.createCookie = function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	};

	this.readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	};

	this.eraseCookie = function(name) {
		Dsq.Utils.createCookie(name,"",-1);
	};

	this.deleteNode = function(node) {
		if(node) {
			this.deleteChildren(node);
			if(typeof node.outerHTML != 'undefined') { node.outerHTML = ''; }
			else if(node.parentNode) { node.parentNode.removeChild(node); }
			delete node;
		}
	};

	this.deleteChildren = function(node) {
		if(node) {
			for(var x = node.childNodes.length-1; x >= 0; x--) {
				var childNode = node.childNodes[x];
				if(childNode.hasChildNodes()) { this.deleteChildren(childNode); }
				if(typeof childNode.outerHTML != 'undefined') { childNode.outerHTML = ''; }
				else node.removeChild(childNode);
				delete childNode;
			}
		}
	};

	this.findPos = function(obj) {
		var curleft = 0;
		var curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	};

	this.getWindowSize = function() {
		var windowWidth = -1;
		var windowHeight = -1;

		if(typeof(window.innerWidth) == 'number') { //Non-IE
			windowWidth = window.innerWidth;
			windowHeight = window.innerHeight;
		} else if(document.documentElement) { // IE 6+ in 'standards compliant mode'
			windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
			windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
		}

		return [windowWidth, windowHeight];
	}

	this.getScrollPos = function() {
		var scrollWidth, scrollTop;

		if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollWidth)) {
			scrollWidth = document.documentElement.scrollWidth;
			// IE is weird here.  If no doctype is provided, document.body.scrollTop is 0,
			// otherwise document.documentElement.scrollTop is 0.
			scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
		} else if(document.body.scrollTop && document.body.scrollWidth) {
			scrollWidth = document.body.scrollWidth;
			scrollTop = document.body.scrollTop;
		}

		return [scrollWidth, scrollTop];
	}

	this.addEventListener = function(instance, eventName, listener) {
		var listenerFn = listener;
		if (instance.addEventListener) {
			instance.addEventListener(eventName, listenerFn, false);
		} else if (instance.attachEvent) {
			listenerFn = function() {
				listener(window.event);
			};
			instance.attachEvent("on" + eventName, listenerFn);
		} else {
			throw new Error("Event registration not supported");
		}
		return {
			instance: instance,
			name: eventName,
			listener: listenerFn
		};
	};

	this.removeEventListener = function(event) {
		var instance = event.instance;
		if (instance.removeEventListener) {
			instance.removeEventListener(event.name, event.listener, false);
		} else if (instance.detachEvent) {
			instance.detachEvent("on" + event.name, event.listener);
		}
	};

	this.fixIframesIE = function(id) {
		var disqusThread = Dsq.$(disqus_container_id);
		var iframes = disqusThread.getElementsByTagName('iframe');

		if(id) {
			var container = Dsq.$(id);
		} else {
			var container = Dsq.$('dsq-content');
		}

		for(i = 0; i < iframes.length; i++) {
			if (container) {
				iframes[i].style.width = container.offsetWidth;
			}
		}
	};

	this.getElementsByClassName = function(oElm, strTagName, strClassName) {
	/* Credit: Jonathan Snook [http://www.snook.ca/jonathan], Robert Nyman [http://www.robertnyman.com] */
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements);
	};

	this.postToUrl = function(url, post_data, opt_redirect) {
		var form = document.createElement('form');
		var iframe_container = document.createElement('div');
		var id = 'dsq-temp-iframe-' + (new Date()).getTime();

		form.method = 'POST';
		form.action = url;
		if (!opt_redirect) {
			form.target = id;
		}
		iframe_container.innerHTML = '<iframe style="display:none" name="' + id + '" id="' + id + '"></iframe>';

		for(var key in post_data) {
			if(post_data.hasOwnProperty(key)) {
				var input = document.createElement('input');
				input.name = key;
				input.type = 'hidden';
				input.value = post_data[key];

				form.appendChild(input);
			}
		}

		Dsq.$b.appendChild(iframe_container);
		Dsq.$b.appendChild(form);
		form.submit();
	};

	// Strips integer id from id of element in the form ('some-id-###')
	this.extractId = function(e) {
		var chunks = e.id.split('-');
		if(chunks.length <= 1) {
			return 0;
		} else {
			var retval = parseInt(chunks[chunks.length-1]);
			return !isNaN(retval) ? retval : null;
		}
	};

	this.getStyle = function(el, styleProp) {
		if(el.currentStyle) {
			var y = el.currentStyle[styleProp];
		} else if(window.getComputedStyle) {
			var y = document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
		}

		if(y == 'transparent' || y == '') {
			this.getStyle(el.parentNode, styleProp);
		} else {
			return y;
		}
	};

	this.execScript = function(url, append_qs, container) {
		var script = document.createElement('script');
		append_qs = typeof append_qs == 'undefined' ? true : append_qs;
		container = container || Dsq.container;

		if(append_qs) {
			var j = (url.indexOf('?') >= 0) ? '&' : '?';
			url += j + (new Date()).getTime();
		}
		script.type = 'text/javascript';
		script.charset = 'UTF-8';
		script.src = url;
		container.appendChild(script);
		return script;
	};

	this.pluralize = function(num, singular, plural) {
		return (num != 1) ? plural || 's' : singular || '';
	};

	this.getRequestParams = function(queryString /* optional */) {
		var pairs, tuple;
		var params = {};

		queryString = queryString || window.location.search.substring(1);
		pairs = queryString.split('&');

		for (var i = 0, pair; pair = pairs[i]; i++) {
			tuple = pair.split('=');
			params[tuple[0]] = (tuple[1] || true);
		}

		return params;
	};

	this.addCssRule = function(selector, styleText, index) {
		var stylesheet;
		index = index || 0;

		if(!this._styleSheet) {
			var styleEl = document.createElement('style');
			document.getElementsByTagName('head')[0].appendChild(styleEl);
			this._styleSheet = styleEl.sheet;
			if(!this._styleSheet) {
				// IE does not like our newly created stylesheet.
				this._styleSheet = document.styleSheets[document.styleSheets.length-1];
			}
		}
		stylesheet = this._styleSheet;

		if(stylesheet.insertRule) {
			var ruleText = selector + ' { ' + styleText + ' }';
			if(index == -1) {
				index = stylesheet.cssRules.length;
			}
			stylesheet.insertRule(ruleText, index);
		} else if(stylesheet.addRule) {
			stylesheet.addRule(selector, styleText, index);
		}
	};

	this.forEachIn = function(obj, callback) {
		for(var key in obj) {
			if(obj.hasOwnProperty(key)) {
				callback(key, obj[key]);
			}
		}
	};

	this._interpolateGlobalContext = {
		// values that get used a lot and are global to the request
		'profile_url': Dsq.Urls.REQUEST_USER_PROFILE,

		'disqus_url': Dsq.jsonData.settings.disqus_url,
		'media_url': Dsq.jsonData.settings.media_url,
		'request_username': Dsq.jsonData.request.username,
		'request_display_username': Dsq.jsonData.request.display_username,
		'forum_name': Dsq.jsonData.forum.name
	};

	this.renderFromContextStack = function(key, contexts) {
		// Returns the first instance of `key` in the array of objects `contexts` or else ''
		for (var i=0; i<contexts.length; i++) {
			if (contexts[i][key] !== undefined) {
				return String(contexts[i][key]);
			}
		}
		throw new Error('key ' + key + ' not found in context');
	};

	var that = this;
	this.interpolate = function(fmt, opt_localContext) {
		// Interpolate `fmt` named-format string with an assumed global context.
		// Based on `interpolate` in django.views.i18n
		var contextStack = [opt_localContext || {}, that._interpolateGlobalContext];
		return fmt.replace(/%\(\w+\)s/g, function(match){
			return that.renderFromContextStack(match.slice(2,-2), contextStack);
		});
	};

	this.stripTags = function(s) {
		// Removes HTML tags from `s`
		return s.replace(/(<([^>]+)>)/g,"");

	};

	this.assert = function(b) {
		if (!b) {
			throw new Error('Assertion error.');
		}
	};

};
// Dsq.Utils

/**
 * Dsq.Popup: Popup helper functions.
 */
Dsq.Popup = new function() {
	this.timeHide = new Array();
	this.timeShow = new Array();
	this.activePopup = {};
	this.profileCache = {};
	this.statusCache = {};

	this.showTimer = function(post_id) {
		// clear the hide timer
		clearTimeout(this.timeHide[post_id]);

		// start the timer
		if(!Dsq.Popup.profileIsOn && !Dsq.Thread.adminIsOn) {
			this.timeShow[post_id] = setTimeout("Dsq.Popup.popProfile(\"" + post_id + "\")", 400);
		}
	};

	this.hideTimer = function(post_id) {
		// clear the show timer
		clearTimeout(this.timeShow[post_id]);
	};

	this.updateProfile = function(username) {
		// Callback from /embed/profile.js
		if (this.statusCache[username]) {
			var statusEl = Dsq.$('dsq-profile-status-' + username);
			statusEl.innerHTML = this.statusCache[username];
			statusEl.style.display = 'block';
		}

		if (this.profileCache[username]) {
			var _cache = this.profileCache[username];

			var _genhtml = function(text) { return '<span><big>' + text + '</big></span>'; };
			var _no_comments = _genhtml(Dsq.FmtStrings.NUMBER_OF_COMMENTS(_cache.comments_count));
			var _no_likes = _genhtml(Dsq.FmtStrings.NUMBER_OF_LIKES(_cache.likes_count));
			var _no_points = _genhtml(Dsq.FmtStrings.NUMBER_OF_POINTS(_cache.points));

			var statsEl = Dsq.$('dsq-popup-profile-user-stats-' + username);
			statsEl.innerHTML = '';

			if (Dsq.jsonData.users[username].registered) {
				statsEl.innerHTML = _no_comments + _no_likes;
			}
			statsEl.innerHTML += _no_points;

			var activeSites = '';
			for (var i = 0; i < _cache.active_sites.length; i++) {
				var site = _cache.active_sites[i];
				activeSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (activeSites !== '') {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = activeSites;
			} else {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = 'This site.';
			}

			var moderatedSites = '';
			for (var i = 0; i < _cache.moderated_sites.length; i++) {
				var site = _cache.moderated_sites[i];
				moderatedSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (moderatedSites !== '') {
				Dsq.$('dsq-popup-profile-moderated-' + username).innerHTML = moderatedSites;
			} else {
				Dsq.$('dsq-popup-profile-moderated-wrapper-' + username).innerHTML = '';
			}
		}

		// Reposition popup after full HTML is rendered
		if(Dsq.Popup.activePopup && Dsq.Popup.activePopup.el) {
			Dsq.Popup.initPopup(Dsq.Popup.activePopup.el, Dsq.Popup.activePopup.id, Dsq.Popup.activePopup.type);
		}

	};

	this.showCookieMsgs = function() {
		var title = '';
		var message = '';
		var numAlerts = 0;

		Dsq.Utils.forEachIn(Dsq.jsonData.cookie_messages, function(k, v) {
			if (!v) return;

			switch(k) {
				// Cookie: Twitter
				case 'post_twitter':
					if (v === 'error') {
						title = 'Twitter Error!';
						message += '<li id="dsq-msg-twitter-error">Oops, we couldn\'t tweet this comment. Please check your <a href="http://disqus.com/account/services">account settings</a>.</li>';
					} else {
						var _msg = v.split(':');
						title = 'Tweeted!';
						message += '<li id="dsq-msg-twitter-success">Your comment was successfully tweeted. <a href="http://twitter.com/' + _msg[0] + '/status/' + _msg[1] + '">Click here to view the tweet</a>.</li>';
					}
					break;
				// Cookie: Unapproved Post
				case 'post_not_approved':
					title = 'Comment awaiting approval by a moderator';
					message += '<li id="dsq-msg-post-not-approved">Your comment must be approved by a moderator before appearing here.</li>';
					break;
				// Cookie: Profile Found
				case 'post_has_profile':
					title = 'Use your existing commenter profile';
					message += '<li id="dsq-msg-post-has-profile">You have just posted your commment as a <span class="dsq-badge-guest">Guest</span>, but you may already have a <span class="logo-disqus">Disqus</span> Profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a></li>';
					break;
				case 'user_created':
					var _data = v.split(':');
					title = 'Profile created!';
					message += '<li id="dsq-msg-user-created">You have just created a <span class="logo-disqus">Disqus</span> Profile, the best way to claim, manage, and track your comments all over the web. \
					<br /><br />A confirmation is being sent to <strong>' + _data[1] + '</strong>. Please check for this email in order to verify your profile. \
					<ul class="dsq-list-tick"> \
						<li>Your username is <strong>' + _data[0] +'</strong>. <a href="http://disqus.com/people/' + _data[0] + '/" target="_blank">Click here to view your public profile</a>.</li> \
						<li>Be sure to set your profile picture, as well as connect your <span class="dsq-badge-facebook">Facebook</span> and <span class="dsq-badge-twitter">Twitter</span> accounts. <a href="http://disqus.com/account/" target="_blank">Click here for account settings</a>.</li> \
					</ul> \
					</li>'
					break;
				default:
					break;
			}
			numAlerts++;
		});

		if(numAlerts > 1) {
			message = '<ul class="dsq-list-bluebullet">' + message;
			message += '</ul>';
			title = 'Thanks for posting!';
		}
		if(numAlerts > 0) {
			if(typeof(disqus_cookie_msgs) == 'function') {
				disqus_cookie_msgs(message, title);
			} else {
				Dsq.Popup.popModal(message, title);
			}
		}
	};

	this.helpBadges = function(post_id) {
		var html = ' \
			<ul class="dsq-popup-help"> \
				<li><span class="dsq-badge dsq-badge-verified">Verified</span> has a <span class="logo-disqus">Disqus</span> Profile with a confirmed email address.</li> \
				<li><span class="dsq-badge dsq-badge-registered">Registered</span> has a <span class="logo-disqus">Disqus</span> Profile, but has not yet confirmed his or her email address.</li> \
				<li><span class="dsq-badge dsq-badge-guest">Guest</span> is not logged in with any account and has not claimed his or her comments.</li> \
				<li class="dsq-help-otheraccts">Other accounts</li> \
				<li><span class="dsq-badge dsq-badge-facebook">Facebook</span> is using his or her Facebook profile via Facebook Connect.</li> \
				<li><span class="dsq-badge dsq-badge-twitter">Twitter</span> is using his or her Twitter profile via Twitter Sign-in.</li> \
				<li><span class="dsq-badge dsq-badge-openid">OpenID</span> is using his or her OpenID.</li> \
			</ul> \
		';

		this.popModal(html, 'Help: Types of Commenters', post_id);
		return;
	};

	this.permalink = function(post_id) {
		var header = 'Link to this comment';
		var body = '<strong>You are anchored to</strong>:<br />' + document.location.protocol + '//' + document.location.host + document.location.pathname + document.location.search + '#comment-' + post_id;

		this.popModal(body, header, post_id);
	};

	this.login = function(header, body) {
		var h = header || 'Login or Register';
		var b = body || '';
		b += Dsq.Templates.frameLogin({id: 'dsq-popup-login'});
		b += '</iframe>'; // HACK: Sometimes there is something funky with the IFRAME SRC that causes no end tag
		this.popModal(b, h, null, true, 'dsq-popup-login');
	};

	this.blacklist = function(id) {
		var _meta = Dsq.jsonData.posts[id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		var title = 'Add to Blacklist';
		var message = ' \
		Adding this person to the blacklist will block him or her from commenting on this site. Check the following types that you would like to add to the blacklist:'
		+ (userData['registered'] ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-username" type="checkbox" checked> \
				<label for="dsq-blacklist-username"><strong>Username</strong>: ' + userData['username'] + '</label> \
			</div>'
			: '')
		+ (_meta.email ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-email" type="checkbox" checked> \
				<label for="dsq-blacklist-email"><strong>Email address</strong>: ' + _meta.email + '</label> \
			</div>'
			: '')
		+ '<div class="dsq-blacklist-option"> \
			<input id="dsq-blacklist-ip" type="checkbox" onclick="Dsq.$(\'dsq-blacklist-ip-warning\').style.display=\'block\'"> \
			<label for="dsq-blacklist-ip"><strong>IP address</strong>: ' + _meta.ip + '</label> \
		</div> \
		';

		message += ' \
			<p id="dsq-blacklist-ip-warning" style="display:none">	\
				Note: Blocking this person\'s IP address may also unintentionally prevent others, who share his/her IP address, from commenting on this site. \
				This may include people who are sharing the same computer, living in the same house, or using the same Internet provider. Only block an IP address as a last resort. \
			</p> \
		';

		message += ' \
			<p style="text-align:center"><button type="button" onclick="Dsq.Post.blockUser(' + id + '); this.disabled=true; this.innerHTML=\'Just one moment...\'">Add to Blacklist</button></p> \
		';

		Dsq.Popup.popModal(message, title);
	};

	this.remoteAccountSettings = function() {
		var body = '';
		// Set up IFrame.
		var params = {};
		var base_url = 'http://disqus.com/forums/scobleizer/_auth/embed/remote_settings/';
		var attributes = {id: 'dsq-popup-account-settings'};
		if (typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}

		body = Dsq.Templates._frameGeneric(base_url, params, attributes);
		this.popModal(body, 'Account Settings', null, true, 'dsq-popup-account-settings');
	};

	this.popModal = function(message, title, post_id, use_listener, extra_classes) {
		var container = document.createElement('div');
		var header, body;

		Dsq.Popup._closePopup(null, true);

		if(typeof(title) == 'undefined') { title = ''; }
		if(typeof(use_listener) == 'undefined') { use_listener = true; }

		if(post_id) {
			container.id = 'dsq-popup-message-' + post_id;
		} else {
			container.id = 'dsq-popup-message';
		}

		header = title;
		body = message;

		container.innerHTML = Dsq.Templates.popupModal(header, body);
		Dsq.Popup.initPopup(container, post_id, 'message', extra_classes);
		if(use_listener) {
			Dsq.Popup.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', Dsq.Popup._closePopup);
		}
	};

	this.popAlert = this.popModal;

	this.loading = function(post_id) {
		var title = Dsq.Strings.JUST_A_MOMENT;
		var body = '<div style="text-align:center; padding: 5px 0 10px 0"><img src="http://media.disqus.com/images/loading.gif" alt="" /></div>'
		Dsq.Popup.lightbox(body, title, post_id);
	};

	this.lightbox = function(message, title, post_id) {
		// Wraps Dsq.Popup.popModal

		var overlay = document.createElement('div');
		overlay.id = 'dsq-overlay';
		overlay.className = 'dsq-overlay';
		Dsq.$b.appendChild(overlay);
		
		Dsq.Popup.popModal(message, title, post_id, false, 'dsq-lightbox');
	};

	this.popProfile = function(post_id, userKey) {
		var post = Dsq.jsonData['posts'][post_id];
		if (post && post.has_been_anonymized) {
			Dsq.Popup.popModal('This message was anonymized by its previous owner.', 'Anonymized', post_id);
			return;
		}

		if(post_id) {
			userKey = Dsq.jsonData['posts'][post_id].user_key;	
		}
		var userData = Dsq.jsonData['users'][userKey];
		var elId = 'dsq-popup-profile-' + userKey;
		var container = document.createElement('div');

		if(this.activePopup.el) {
			this._closePopup(null, true);
			if(this.activePopup.linkClicked) {
				this.activePopup.linkClicked = false;
				return;
			}
		}

		container.id = elId;
		container.innerHTML = Dsq.Templates.popupProfile(userKey);

		this.initPopup(container, post_id, 'profile');
		this.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', this._closePopup);

		if(!this.profileCache[userKey]) {
			Dsq.Utils.execScript('http://disqus.com/embed/profile.js'
				+ '?username=' + userKey
				+ '&anon=' + (userData['registered'] ? 0 : 1)
				+ '&f=' + Dsq.jsonData['request'].forum);
		} else {
			this.updateProfile(userKey);
		}
	};

	this._closePopup = function(e, force) {
		var activePopup = Dsq.Popup.activePopup.el;
		var id = Dsq.Popup.activePopup.id;
		var link = 'dsq-avatar-' + id; // HACK: Specific to profile toggle target

		// HACK: This event should be gone if there is no active popup.
		if(!activePopup) {
			return;
		}
		if(force || !Dsq.Popup.isClicked(e, activePopup.id)) {
			// TODO: This is breaking iE?
			if(Dsq.Popup.popupListener) {
				Dsq.Utils.removeEventListener(Dsq.Popup.popupListener);
			}
			
			// Kill overlay
			var overlay = Dsq.$('dsq-overlay');
			if(overlay) { Dsq.Utils.deleteNode(overlay); }
			
			try {
				Dsq.Utils.deleteNode(activePopup);
			} catch(e) {
				// HACK: IE6 throws an error when using deleteNode() with a node containing a <table> in the html.
				activePopup.parentNode.removeChild(activePopup);
			}
			Dsq.Popup.activePopup = {};
		}

		if(!force && Dsq.Popup.isClicked(e, link)) {
 			Dsq.Popup.activePopup.linkClicked = true;
		}

	};

	this.initPopup = function(popup, post_id, type, extra_classes) {
		popup.className = 'dsq-popup dsq-popup-' + type + ' ' + (extra_classes ? extra_classes : '');
		if(Dsq.Utils.ie6 || Dsq.Utils.ie7) {
			// HACK: We can't modify the body before it's ready, so we need
			//       to use an IE-safe "DOMReady" workaround before loading
			//       our popup.
			Dsq.Utils.execOnReady(function() {Dsq.$b.appendChild(popup); });
		} else {
			Dsq.$b.appendChild(popup);
		}

		popup.style.display = 'block';

		var xPos = (Dsq.Utils.getWindowSize()[0] - popup.offsetWidth) / 2;
		var yPos = (Dsq.Utils.getWindowSize()[1] - popup.offsetHeight) / 2;

		if(Dsq.Utils.ie6) {
			yPos += Dsq.Utils.getScrollPos()[1];
		}

		popup.style.left = xPos + 'px';
		popup.style.top = yPos + 'px';

		Dsq.Popup.activePopup = {
			'el' : popup,
			'id' : post_id,
			'type': type,
			'linkClicked' : false
		};
	};

	this.isClicked = function(e, id) {
		var t = e.target || e.srcElement;
		while(t && t.parentNode) {
			if(t.id == id) {
				return true;
			}

			t = t.parentNode;
		}
		return false;
	};
};
// Dsq.Popup

/**
 * Dsq.Templates
 */
Dsq.Templates = new function() {
	/*
	 * Counter keeping track of the number of posts iterated over.
	 */
	this.postLoopCounter = 0;
	this.filters = {};
	this.addPostContainer = 'dsq-post-add';
	this.textareaContainer = 'dsq-post-add';

	this.registerTemplate = function(name, func) {
		this['$$_' + name] = func;

		if(typeof DsqLocal.Filters != 'undefined'
		&& typeof DsqLocal.Filters[name] == 'function') {
			// Push filters to this.filters to unify code.
			this.filters[name] = this.filters[name] || [];
			this.filters[name].push(DsqLocal.Filters[name]);
		}

		this[name] = function() {
			var ret;

			if(typeof DsqLocal.Templates != 'undefined'
			&& typeof DsqLocal.Templates[name] == 'function') {
				ret = DsqLocal.Templates[name].apply(this, arguments);
			}

			if(ret === undefined) {
				ret = this['$$_' + name].apply(this, arguments);
			}

			if(this.filters[name]) {
				var args = [ret];

				args.push.apply(args, arguments);
				for(var i = 0; i < this.filters[name].length; i++) {
					ret = this.filters[name][i].apply(this, args);
				}
			}

			return ret;
		};
	};

	this.registerFilter = function(name, func) {
		this.filters[name] = this.filters[name] || [];
		this.filters[name].push(func);
	};

	/**
	 * Dsq.Templates.Filters
	 */
	this.Filters = new function() {
		this.commentContainer = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			var classes = [];
			if(Dsq.jsonData.request.page > 1) {
				classes.push('dsq-append');
			}

			//
			// Extra classes used for custom themes
			//

			if(_meta.depth) {
				classes.push('dsq-comment-child', 'dsq-depth-' + _meta.depth, 'dsq-parent-is-' + _meta.parent_post_id);
			}


			//

			if(_meta.author_is_creator) {
				// TODO: We need to deprecate the "special" class since it is not properly prefixed.
				classes.push('special', 'dsq-special');
			}
			if(_meta.author_is_moderator) {
				classes.push('dsq-moderator');
			}
			classes.push(['dsq-odd', 'dsq-even'][Dsq.Templates.postLoopCounter % 2]);

			s = s.substring(0, s.lastIndexOf('>'));
			return s + ' class="dsq-comment ' + classes.join(' ') + '" style="margin-left:' + _meta.depth*30 + 'px">';
		};

		this.commentContent = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			if (_meta.killed) {
				return '<em>Comment removed.</em>';
			} else if (!_meta.approved) {
				return '<em>This comment was flagged for review.</em>';
			}

			s = s.replace(Dsq.MEDIA_POST_RE, Dsq.MediaPostHandler);
			return s;
		};
	};

	//
	// Thread
	//
	// TODO: These need to be stripped of all Django template tags.

	this.authPost = function() {
		if (!Dsq.jsonData.context.show_reply) {
			return '';
		}
		var result = [];
		result = result.concat([
				'<div id="dsq-auth"',
						Dsq.jsonData.integration.reply_position ? 'class="dsq-auth-bottom"' : '',
						'>',
					'<div class="dsq-by">',
						'<a href="http://disqus.com" target="_blank">',
							(Dsq.jsonData.integration.disqus_logo ?
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/by-disqus.png" alt="discussion by DISQUS">') :
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/dsq-button-120x19.png" alt="discussion by DISQUS">')
							),
						'</a>',
					'</div>',
					'<div class="dsq-auth-header">',
						'<h3 id="dsq-add-new-comment" class="dsq-h3-addcomment">',
								Dsq.Strings.ADD_NEW_COMMENT,
						'</h3>',
						'<div id="dsq-login">',
						(!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.allow_anon_post
								? '<p class="dsq-login-message" id="dsq-login-message">You are commenting as a <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. You may select one to log into:</p>'
								: '')
		]);
		if (!Dsq.jsonData.request.is_authenticated) {
			result = result.concat([
							Dsq.Utils.interpolate(
								'<a id="dsq-login-toggle" href="%(disqus_url)s%(login_url)s?next=article:%(thread_id)s" onclick="Dsq.Popup.login(); return false"><img class="dsq-login-icon" src="%(media_url)s/images/dsq-profile-btn.png" title="%(log_into)s" alt="%(log_into)s"/></a>',
								{login_url: Dsq.Urls.LOGIN, thread_id: Dsq.jsonData.thread.id, log_into: Dsq.Strings.LOG_INTO_DISQUS}
								),
							'&nbsp; ',
							(Dsq.jsonData.context.use_fb_connect ?
								'<div id="dsq-fbc-login" onlogin="DisqusFbcParentController.onLogin()" size="medium" background="light" length="short" style="display:inline; margin-right:7px"></div>' :
								''
							),
							(Dsq.jsonData.context.use_twitter_signin ?
								Dsq.Utils.interpolate(
									'<div id="dsq-twitter-login" class="dsq-twitter-login" onclick="Dsq.Twitter.startTwitterConnect();" style="display:inline; cursor: pointer"><img src="%(media_url)s/images/twitter-signin-short.png" style="margin-right:7px" /></div>', {}) : ''),
							(Dsq.jsonData.context.use_openid ?
								Dsq.Utils.interpolate(
									'<div id="dsq-openid-login" class="dsq-openid-login" onclick="Dsq.OpenID.requestURL();" style="display:inline; cursor:pointer;"><img src="%(media_url)s/images/openid-login-button.png"/></div>', {}
								) : '')
			]);
		}
		result = result.concat([
						'</div>', // dsq-login
					'</div>', // dsq-auth-header
					'<div id="dsq-authenticated" class="dsq-authenticated" ',
						Dsq.jsonData.request.is_authenticated ? 'style="display:block"' : '',
						'>',
						'<div class="dsq-authenticated-pic">',
								Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">' +
																			'<img class="dsq-post-avatar" src="%(avatar_url)s" alt="" /></a>',
																			{avatar_url: Dsq.Urls.REQUEST_USER_AVATAR,
																			url: (Dsq.jsonData.request.is_remote
																					 ? Dsq.jsonData.request.url
																					 : Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE) }),
						'</div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									(Dsq.jsonData.request.is_remote
										? Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">%(request_display_username)s</a>', {url:Dsq.jsonData.request.url})
										  )
										: Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(disqus_url)s%(profile_url)s" title="%(request_display_username)s">%(request_display_username)s</a>')
											)
									),
								'</li>',
								'<li class="logout">',
									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<img class="dsq-login-icon" src="%(media_url)s/images/dsqicon12.png" alt="%(logged_in_as)s"/>&nbsp',
											{logged_in_as: Dsq.FmtStrings.LOGGED_IN_AS(Dsq.jsonData.request.display_username)})
										: ''),

									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="%(logout_from_disqus)s">',
											{logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN, logout_from_disqus: Dsq.FmtStrings.LOGOUT_FROM('DISQUS')})
										: ((Dsq.jsonData.request.remote_domain == 'twitter')
												? Dsq.Utils.interpolate('using Twitter (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
												 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
												: ((Dsq.jsonData.request.remote_domain == 'openid')
													 ? Dsq.Utils.interpolate('using OpenID (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
													 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
													 : ''
													)
											)
									),

									(!Dsq.jsonData.request.is_remote ? Dsq.FmtStrings.LOGOUT_FROM('<span class="logo-disqus">DISQUS</span>') : ''),
									'</a>',
								'</li>',
							'</ul>',
						'</div>',
					'</div>'
		]);
		if (Dsq.jsonData.context.use_fb_connect) {
			result = result.concat([
					'<div id="dsq-fbc-authenticated" class="dsq-authenticated">',
						'<div id="dsq-fbc-profilepic" class="dsq-authenticated-pic" uid="loggedinuser" type="FB.XFBML.ProfilePic" size="square" facebook-logo="true"></div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									'Logged in as <span id="dsq-fbc-name" uid="loggedinuser" type="FB.XFBML.Name" linked="true" useyou="false"></span>',
								'</li>',
								'<li class="logout">using Facebook Connect <a href="#" onclick="javascript:DisqusFbcParentController.logout();return false;">(Logout)</a></li>',
							'</ul>',
						'</div>',
					'</div>'
			]);
		}
		result = result.concat([
				'</div>', // dsq-auth
				'<div id="dsq-toolbar-items">',
				'</div>'
		]);
		result = result.concat([
					//
					//
					//
				((!Dsq.jsonData.forum.allow_anon_post && !Dsq.jsonData.request.is_authenticated) ?
					// Needs to be translated:
					('<p id="dsq-no-anon-msg">Required: Please log into <span class="logo-disqus">Disqus</span> ' +
					(Dsq.jsonData.context.use_fb_connect ? 'or connect with Facebook ' : '') +
					(Dsq.jsonData.context.use_twitter_signin ? 'or sign in with Twitter ' : '') +
					(Dsq.jsonData.context.use_openid ? 'or sign in using OpenID ' : '') +
					Dsq.Utils.interpolate('to comment on <strong>%(forum_name)s</strong>.</p>')) :
					''
				),
				'<div id="dsq-post-add"></div>',
				'<div style="margin:10px 0">',
				((Dsq.jsonData.forum.use_media) ?
						'<a href="#" id="dsq-media-link" onclick="Dsq.Post.showMenu(this, false, \'media\'); return false">' + Dsq.Strings.USE_MEDIA + ' <small>&#9660;</small></a>' :
						''),
				'</div>'
		]);
		return result.join('');
	};


	this.header = function() {

		var html = '\<h3 id="dsq-comments-count" class="dsq-h3-commentcount">\
	 <span id="dsq-num-posts">83</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/ray_ozzie_delivers_with_live_mesh/latest.rss"><img src="http://media.disqus.com/images/embed/bullet-feed.png"></a>\
	 </span>\
	 </h3>\
	 <div id="dsq-options" style="margin:15px 0">\
	 <span class="dsq-item-sort">\
	 Sort by\
	 <select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);">\
	 <option value="hot" selected="selected">Popular now</option>\
	 <option value="best" >Best Rating</option>\
	 <option value="newest" >Newest first</option>\
	 <option value="oldest" >Oldest first</option>\
	 </select>\
	 &nbsp;\
	 </span>\
	 <span class="dsq-item-cp"><a href="http://scobleizer.disqus.com/ray_ozzie_delivers_with_live_mesh/">Community Page</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 <p>Comments for this page are closed.</p>\
	 </div>\
		';

		

		
		if (Dsq.jsonData.request.is_moderator) { 
			html = ' \
			<div class="dsq-alert-message dsq-upgrade-message"> \
				<strong>Disqus upgrade available.</strong> Hi ' + Dsq.jsonData.request.display_username + ', this message is being displayed to you because you are a moderator of this site. <a href="#" onclick="Dsq.$(\'dsq-upgrade-message\').style.display=\'block\';this.style.display=\'none\';return false">Click here for details.</a> \
				<div style="display:none; margin-top:10px;" id="dsq-upgrade-message"> \
					A new theme is available with added features. <a href="http://disqus.com/comments/settings/' + Dsq.jsonData.forum.url + '/?p=customize">To change your theme, click here</a> and choose the theme Narcissus. \
					If you do not upgrade, you are missing out on features such as: real-time commenting, new sign-in integrations, and an upgrade interface. \
					<strong>This message will automatically go away in one week.</strong> \
				</div> \
			</div> \
			' + html; 
		}
		return html;
	};

	this.footer = function() {
		var html = Dsq.Templates.pagination();

		
			html += Dsq.Templates.authPost();
		

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		

		return html;
	};

	this.pagination = function() {
		var html = '';
		
		if (Dsq.$('dsq-pagination')) { Dsq.$('dsq-pagination').innerHTML = ''; }
		if (!Dsq.jsonData.thread.paginate) { return ''; }

		//
		// TODO: num_paginator still uses the template tag for pagination, 
		// 		while append_paginator does it all in JavaScript.
		//		This should all be in JavaScript.
		//

		if (Dsq.jsonData.thread.num_pages > 1 && Dsq.jsonData.request.page < Dsq.jsonData.thread.num_pages) {
			html = ' \<a class="dsq-paginate-append-text" href="#" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this); return false">Show more comments...</a>\
	 <button type="button" class="dsq-button-small dsq-paginate-append-button" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this);">Load more comments</button>\
			';
		}
		
		if (Dsq.$('dsq-pagination')) {
			Dsq.$('dsq-pagination').innerHTML = html;
			return '';
		} else {
			return '<div id="dsq-pagination" class="dsq-pagination">' + html + '</div>';
		}
	};

	this.trackbacks = function() {
		var html = '';

		if(typeof DsqLocal != 'undefined' && DsqLocal.trackback_url && DsqLocal.trackbacks) {
			var trackbacks = DsqLocal.trackbacks;
			var trackback_url = DsqLocal.trackback_url;
		} else {
			var trackbacks = [
			
			
			];
			var trackback_url = 'http://scobleizer.disqus.com/ray_ozzie_delivers_with_live_mesh/trackback/';
		}

		html += '<div class="dsq-item-trackback">Trackback URL&nbsp;&nbsp;<input class="dsq-trackback-url" onclick="this.select()" readonly="true" value="' + trackback_url + '"></div>';

		if(trackbacks.length) {
			html += '<ul id="dsq-references">'
			for(var i = 0; i < trackbacks.length; i++) {
				var trackback = trackbacks[i];
				html += '<li><cite><a href="' + trackback.author_url + '" rel="nofollow">' + trackback.author_name + '</a></cite> \
						<p class="dsq-meta">' + trackback.date + '</p> \
						<p class="dsq-content">' + trackback.excerpt + '</p></li>';
			}
			html += '</ul>';
			html = '<h3 class="dsq-h3-trackbacks">Trackbacks</h3>' + html;
		}

		return html;
	}

	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		/* Reaction HTML begins */
		var item = '<li class="dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-reaction-header">'
			+ '<div class="dsq-header-avatar">';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'">';
		} else {
			item += '<a target="_blank" href="#" onclick="return false;">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {
			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar32.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png"/>'
			+ '</a></div>'
			+ '<cite><span>' + reaction.author_name + '</span></cite>'
			+ '<span class="dsq-header-meta"><a class="dsq-header-time">' + reaction.date_created + '</a></span>'
			+ '</div><div class="dsq-reaction-body">'
			+ '<div class="dsq-reaction-message">' + reaction.body + '</div>'
			+ '<div class="dsq-reaction-footer">From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
			+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
			+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator ? '&nbsp;&bull;&nbsp;<a class="dsq-hide-reaction" href="#" onclick="Dsq.Reaction.hide(' + reaction.id + '); return false;">Hide</a>' : '') + '</div></div>';

		if(reaction.retweets) {
			var num_retweets = reaction.retweets.length;
			if (num_retweets > 0) {
				item += '<div class="dsq-reaction-retweets">';
				if (num_retweets == 1) {
					item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
				} else {
					item += (num_retweets + ' more retweets from ');

					item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
					var n_tweets = (num_retweets > 15) ? 15 : num_retweets;
					item += Dsq.Templates.showRetweets(reaction.id, n_tweets);

					if (n_tweets != num_retweets) {
						item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
							+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
					}
				}
				item += '</div>';
			}
		}

		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}

		return '<h3 class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this.missingPermissions = function() {
		return '	<p>Comments for this page are closed.</p>\n';
	};

	//
	// Post
	//

	this.prependPost = function(post_id) {
		var html = '<div id="comment-' + post_id + '"></div>';
		return html;
	};

	this.appendPost = function(post_id) {
		var html = '<div id="dsq-comment-reply-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};

		return ' \
			<div class="dsq-header-avatar" id="dsq-header-avatar-' + post_id + '" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
				<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
			+ (Dsq.jsonData.forum.show_avatar
				? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
				: '')
			+ '</a>'
			+ '</div> \
		';
	};

	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];

		return ''
			+ (_meta.author_is_moderator
				? '<img class="dsq-mod-star" src="http://media.disqus.com/images/bullet-star.png" title="Moderator" alt="" />'
				: '')
			+ '<span class="dsq-header-meta"> \
				<a id="dsq-time-' + post_id + '" class="dsq-header-time" href="#comment-' + post_id + '" title="Permalink">' + _meta.date + '</a> \
			</span>';
	};

	this.preBody = function(post_id) {
		return '';
	}

	this.postBody = function(post_id) {
		// TODO: Deprecate flagging conditional
		var _meta = Dsq.jsonData.posts[post_id];
		return ''
			+ (_meta.edited
				? '<p class="dsq-editedtxt">(Edited by a moderator)</p>'
				: '')
			;
	};

	this.postFooter = function(post_id) {
		// TODO: Use media should be conditional
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed) { return ''; }

		return ' \
			<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
				<div id="dsq-points-' + post_id + '" class="dsq-likedtxt">'
				+ (_meta.points
					? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this comment.'
					: '')
				+ '</div>'
				+ '<ul class="dsq-comment-options dsq-list-style">'
				+ (_meta.votable
					? '<li class="dsq-list-first dsq-rate" id="dsq-rate-cont-' + post_id + '">'
					+ (!_meta.up_voted
						? '<a href="#" onclick="Dsq.Post.rate(this, ' + post_id + ', 1); return false;">Like</a>'
						: 'You liked this.') + '</li>'
					: '')
				+ '<li class="dsq-report' + (!_meta.votable ? ' dsq-list-first' : '') + '" id="dsq-post-report-' + post_id + '"><a href="#" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">Report</a></li> \
				</ul> \
				<ul class="dsq-list-style">'
				+ (_meta.can_reply
					? '<li class="dsq-list-first"><a href="#" id="dsq-reply-link-' + post_id +'" onclick="Dsq.Post.toggleReply(this, ' + post_id +'); return false;">Reply</a></li>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<li id="dsq-edit-el-' + post_id + '"><a id="dsq-edit-link-' + post_id + '" href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit</a></li>'
					: '')
				+ '<li class="' + (!_meta.can_reply ? 'dsq-list-first' : '') + '" id="dsq-more-el-' + post_id + '"><a id="dsq-more-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'more\'); return false">More <small>&#9660;</small></a></li>'
				+ (Dsq.jsonData.forum.use_media
					? '<li id="dsq-media-el-' + post_id +'" style="display:none"><a id="dsq-media-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'media\'); return false">Use Media <small>&#9660;</small></a></li>'
					: '')
				+ '</ul>'
				+ '<div id="dsq-reply-bar-' + post_id + '" class="dsq-reply-bar" style="display:none"> \
						<div id="dsq-reply-bar-items-' + post_id + '" class="dsq-reply-bar-items"> \
						</div> \
						<div id="dsq-reply-bar-auth-' + post_id + '" class="dsq-reply-bar-auth"> \
							 \
								 \
								 	<a href="#" class="dsq-help dsq-reply-req-opt" title="You are commenting as a Guest. You may choose to log into an existing DISQUS Profile, your Facebook, Twitter or OpenID account to comment on Scobleizer" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://media.disqus.com/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:18353164" onclick="Dsq.Popup.login(); return false">Login</a> \
								 \
									&nbsp;or&nbsp; \
									<img class="fb_login_image" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_small_short.gif" alt="Facebook Connect"/> \
									<a href="#" onclick="FB.Connect.requireSession(DisqusFbcParentController.onLogin); return false;">Connect</a> \
								 \
								&nbsp;or&nbsp; \
									<img src="http://media.disqus.com/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								 \
							 \
						</div> \
					</div> \
					<div id="dsq-reply-' + post_id + '"></div> \
			</div> \
		';
	};

	//
	// Iframes
	//

	this._makeAttributes = function(attributes) {
		// Makes a tag attributes string out of an object.
		// Caller is responsible for making sure nothing needs to be escaped.
		var result = [];
		for (key in attributes) {
			result.push(' ' + key + '="' + attributes[key] + '"');
		}
		result = result.join('');
		return result;
	};

	this._frameGeneric = function(base_url, params, attributes) {
		if(typeof(disqus_callback_params) == 'undefined') {
			disqus_callback_params = '';
		}

		var default_params = {
			// TODO: These should be moved to Dsq.jsonData.
			'f'				: 'scobleizer',
			't'				: 'ray_ozzie_delivers_with_live_mesh',
			// Do we need encodeURIComponent here?
			'ifrs'			: encodeURIComponent(disqus_iframe_css),
			'to_redirect'	: encodeURIComponent(window.location),
			'cbp'			: disqus_callback_params,
			'ff'			: Dsq.Thread.ff,
			'fc'			: Dsq.Thread.fc,
			'ac'			: Dsq.Thread.ac,
			'default_text'	: disqus_default_text
		};

		base_url += '?' + (new Date()).getTime();
		// Add params to default_params.
		if(params) {
			for(var key in params) {
				if(params.hasOwnProperty(key)) {
					default_params[key] = encodeURIComponent(params[key]);
				}
			}
		}
		// Build querystring.
		for(var key in default_params) {
			if(default_params[key] && default_params.hasOwnProperty(key)) {
				base_url += '&' + key + '=' + default_params[key];
			}
		}

		return [
			'<iframe marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0"',
			(' allowtransparency="true" src="' + base_url + '"'),
			this._makeAttributes(attributes),
			'</iframe>'].join('');
	};

	this.frameLogin = function(opt_attributes) {
		var params = {};
		var base_url = 'http://disqus.com/embed/login.html';
		var attributes = opt_attributes || {};
		attributes['class'] = 'dsq-post-login';

		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameReply = function(post_id, extra_params, attributes) {
		// Returns the HTML for a reply iframe. Called by Dsq.Iframes.setReplyIframeToContainer
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = Dsq.Urls.REPLY;
		var params = {
			'def_email'		: disqus_def_email,
			'def_name'		: disqus_def_name
		};
		if(extra_params) {
			for(var key in extra_params) {
				if(extra_params.hasOwnProperty(key)) {
					params[key] = extra_params[key];
				}
			}
		}
		if(_meta) {
			params['parent_post'] = post_id;
		}
		if(typeof disqus_per_page != 'undefined') {
			params['per_page'] = disqus_per_page;
		}
		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		if(Dsq.jsonData.request.is_authenticated) {
			attributes['class'] += '-authenticated';
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameEdit = function(post_id) {
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = 'http://disqus.com/embed/edit.html';
		var params = {
			'p' : post_id
		};
		return this._frameGeneric(base_url, params, {'class': 'dsq-post-edit', 'name': 'dsq-edit_' + post_id + '-frame'});
	};

	//
	// Menus
	//

	this.menuMore = function(post_id) {
		// TODO: "Remove post" button should hide menu.
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		return ' \
			<li><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')">Link</a></li> \
			<li><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Profile</a></li>'
	+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
		? '	<li class="dsq-menu-sep"></li>' + (_meta.email ? '<li class="dsq-admin-email">' + _meta.email + '</li>' : '')
		+ '	<li class="dsq-admin-ip">' + _meta.ip + '</li> \
			<li class="dsq-menu-sep"></li>'
		+ (Dsq.jsonData.request.moderator_can_edit
			? ' <li class="dsq-admin-edit"><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit Comment</a></li>'
			: '')
		+ ' <li class="dsq-remove"><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); return false;">Remove Comment</a></li> \
			<li class="dsq-report-spam"><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); return false;">Mark Spam</a></li> \
			<li class="dsq-block-user"><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li>'
		: '');
	};

	this.menuMedia = function(post_id) {
		return ' \
			<li><a href="#" onclick="Dsq.Post.toggleMediaReply(this, ' + post_id + ', \'seesmic\'); return false;">Record video</a></li> \
		';
	};

	this.dropProfile = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};


		var menu = '<li class="dsq-drop-showlnk"><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Expand &#8663;</a></li>';
		var pointsMessage = '';
		if (userData['registered']) {
			pointsMessage = 'with ' + userData['points'] + ' points (more points are better).';
		}

		if (userData['is_remote']) {
			var domain = userData['remote_domain_name'];
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' is a ' + domain + ' user ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
			menu += '<span class="dsq-badge-' + domain.toLowerCase() + '">' + domain + '</span></li>';
		} else if (userData['registered']) {
			if (userData['verified']) {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a verified commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-verified">Verified</span></li>';
			} else {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a registered, but unverified, commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-registered">Registered</span></li>';
			}
		} else {
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has not claimed this commenter profile." onclick="Dsq.Popup.helpBadges()"><span class="dsq-badge-guest">Guest</span></li>';
		}

		menu += _includeServices();
		return menu;
	};

	//
	// Popups
	//

	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-content"> \
			<div class="dsq-popup-top"></div> \
			<div class="dsq-popup-body" class="clearfix"> \
				<div class="dsq-popup-body-padding"> \
					<div class="dsq-popup-header"> \
						<a class="dsq-close-link" href="#" onclick="Dsq.Popup._closePopup(null, true); return false"><img src="http://media.disqus.com/images/modal-close.png" alt="" /></a>'
						+ content['header']
					+ '</div>'
					+ content['body']
					+ '<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
				</div> <!-- padding --> \
			</div> <!-- body --> \
			<div class="dsq-popup-bottom"></div> \
		</div> \
		';
	};

	this.popupProfile = function(user_key) {
		var userServices = Dsq.Post.getUserServices(user_key, null);
		var userData = Dsq.jsonData['users'][user_key];
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		var _includeServices = function() {
			var html = '';
			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == 0
					? '<h4>Connections</h4><ul>'
					: '')
				+ '<li> \
					<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '" title="' + userServices[i].name.toLowerCase() + '" /> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank">'
					+ userServices[i].name
					+ '</a> \
				</li>'
				+ (i+1 == userServices.length ? '</ul>' : '');
			}
			return html;
		};

		headerHtml = ' \
			<table> \
				<tr> \
					<td> \
						<a class="dsq-profile-userurl" href="' + userData.url + '"><img class="dsq-popup-profile-avatar" src="' + userData['avatar'] + '" alt="" /></a> \
					</td> \
					<td> \
						<div class="dsq-popup-profile-user"> \
							<h3>' + userData['display_name'] + '</h3> \
							<div class="dsq-popup-profile-user-stats" id="dsq-popup-profile-user-stats-' + user_key + '">Loading...</div> \
						</div> \
					</td> \
				</tr> \
			</table> \
		';

		bodyHtml = ' \
			<div class="dsq-popup-profile-state"> \
				This is a&nbsp;<span class="'
					+ (userData['registered']
						? (userData['verified']
							? ' dsq-badge-verified'
							: (userData['is_remote']
								? ' dsq-badge-' + userData['remote_domain_name'].toLowerCase()
								: ' dsq-badge-registered')
							)
							: ' dsq-badge-guest') + '">'
			+ (userData['registered']
				? (userData['verified']
					? 'Verified'
					: (userData['is_remote']
						 ? userData['remote_domain_name']
						 : 'Registered')
					)
				: 'Guest')
			+ '</span>&nbsp;commenter profile.'
			+ '&nbsp;<a class="dsq-profile-userurl" href="' + userData.url + '"><strong>View more comments </strong></a>'
			+ (!userData['points']
				? '<p class="dsq-popup-notice">If this is you, <a href="http://disqus.com/profile" target="_blank">claim it now</a> to manage your comments.</p>'
				: '')
			+ ((userData['registered'] && !userData['verified'] && (Dsq.jsonData.request.username && (Dsq.jsonData.request.username == userData['username'])) && !userData['is_remote'])
				? '<p class="dsq-popup-notice"><strong>Alert</strong>: You have not verified this account. <a href="http://disqus.com/verify">Verify it now.</a></p>'
				: '')
			+ '</div> \
			<div id="dsq-profile-status-' + user_key + '" class="dsq-popup-profile-status" style="display:none"></div> \
			<div class="dsq-popup-profile-snapshot"> \
				<table> \
					<tr> \
						<td> \
							<div id="dsq-popup-profile-active-sites-wrapper-' + user_key + '"> \
								<h4>Most active sites</h4> \
								<ul id="dsq-popup-profile-active-sites-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
						<td>'
							+ _includeServices()
							+ '<div id="dsq-popup-profile-moderated-wrapper-' + user_key + '"> \
								<h4>Moderator of</h4> \
								<ul id="dsq-popup-profile-moderated-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupReblog = function() {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<cite><span>Reblog this comment</span></cite> \
		';

		bodyHtml = ' \
			<div id="dsq-reblog-form" class="dsq-reblog-form"> \
			</div> \
		';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupModal = function(title, message) {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<h3>' + title + '</h3> \
		';

		bodyHtml = message;

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.alertContent = function(name, post_id) {
		var alert = {
			'post_not_approved': {
				'title': 'Comment awaiting approval by a moderator',
				'message': 'Thanks for posting. Your comment must be approved by a moderator before appearing here.'
			},
			'post_has_profile': {
				'title': 'Use your existing commenter profile',
				'message': 'You have just posted your commment as a <span class="dsq-badge dsq-badge-guest">Guest</span>, but you may already have a <span class="dsq-badge dsq-badge-registered">Registered</span> commenter profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a>'
			}
		};
		return alert[name] || false;
	};

	//
	// Actions
	//

	this.voted = function(post_id, points, vote) {
		// Update number of points
		Dsq.$('dsq-points-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this comment.';

		// Update link text
		if(vote) {
			Dsq.$('dsq-rate-cont-' + post_id).innerHTML = 'You liked this.';
		}
	};

	this.subscribed = function(status) {
		var title, message;

		if(status) {
			title = 'Subscribed!';
			message = 'You have subscribed to this comment thread. New comments will be sent directly to your email inbox, where you may read and respond by email.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(0); return false">Unsubscribe</a> \
			';
		} else {
			title = 'Unsubscribed';
			message = 'You have unsubscribed to this comment thread. New comments will no longer be sent to your email inbox.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a> \
			';
		}

		Dsq.Popup.popModal(message, title);

	};
	
	this.highlighted = function() {
		Dsq.Popup.popModal('This comment has been highlighted.', 'Highlighted comment');
	};

	//
	// Media
	//

	this.mediaSeesmic = function(id, thumb) {
		return ' \
			<div id="dsq-seesmic-' + id + '_preview" class="dsq-seesmic-preview"><a href="http://www.seesmic.com/video/' + id + '" target="_blank" class="see_link">&nbsp;</a> \
				<div style="display:block;width:160px; height:120px; border:none; background-image:url(http://t.seesmic.com/thumbnail/' + thumb + ')"> \
					<div id="dsq-seesmic-' + id + '_hide" class="seePlayOverlay" style="display:none;"><img onclick="see_play_video(\'' + id + '\',false)" src="http://media.disqus.com/images/seesmic/stopOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; padding-top: 30px; padding-left: 50px" alt="" /></div> \
					<div id="dsq-seesmic-' + id + '_show" class="seePlayOverlay"><img onclick="see_play_video(\'' + id + '\',true)" src="http://media.disqus.com/images/seesmic/playOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; border:none; padding-top: 30px; padding-left: 50px" alt="" /></div> \
				</div> \
			</div> \
			<div id="' + id + '_content" style="display:block; width:100%; padding-top:5px"></div> \
		';
	};

	//
	// Callbacks
	//

	this.postComment_onSuccess = function(parent_post_id) {
		// Increment post count
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');
		
		if (num_posts) { 
			num_posts.innerHTML = parseInt(num_posts.innerHTML) + 1;
		}
		if (total_posts) { 
			total_posts.innerHTML = parseInt(total_posts.innerHTML) + 1;
		}
	};
};
// Dsq.Templates


/**
 * Dsq.Post
 */
Dsq.Post = new function() {
	this.openedMenu = {};
	this.menuEventListener = null;
	this.stateReplyToggled = {};
	this.stateEditToggled = {};
	this.stateRecordLink = {};

	/**
	 * Inserts a new post into the document.
	 *
	 * @param after_id {Number}	Insert a post before specified id.  If after_id
	 *							evaluates to false, then post in the front.  If
	 *							after_id is -1, post at the end.
	 */
	this.insert = function(after_id, id, message, author) {
		// Skeleton template from thread_posts.html.
		var skeleton = ' \
			<li id="dsq-comment-%(id)s"> \
				<div id="dsq-comment-header-%(id)s" class="dsq-comment-header"> \
					<cite id="dsq-cite-%(id)s" class="dsq-comment-cite"> \
						<a id="dsq-author-user-%(id)s" href="%(author_url)s" target="_blank" rel="nofollow">%(author_name)s</a> \
					</cite> \
				</div> \
				<div id="dsq-comment-body-%(id)s" class="dsq-comment-body"> \
					<div id="dsq-comment-message-%(id)s" class="dsq-comment-message">%(message)s</div> \
				</div> \
			</li> \
		';
		var _meta = Dsq.jsonData.posts[id];
		var _user_meta = Dsq.jsonData.users[_meta.user_key];
		var markup = Dsq.Utils.interpolate(skeleton, {
			id: id,
			message: message,
			author_url: _user_meta.blog,
			author_name: _user_meta.display_name
		});
		var div = document.createElement('div');
		markup = markup.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
		div.innerHTML = markup;

		if (after_id === -1) {
			Dsq.$('dsq-comments').appendChild(div);
		} else if (!after_id) {
			Dsq.$('dsq-comments').insertBefore(div, Dsq.$('dsq-comments').firstChild);
		} else if (Dsq.$('dsq-comment-' + after_id)) {
			// Get next node after "after_id", so we can insert before it.
			// If "after_id" is the last comment, the target node is the
			// last node.
			
			// var append_post_id = Dsq.Templates.appendPost(after_id).replace('<div id="','').replace('"></div>', '');
			var append_post_id = 'dsq-append-post-' + after_id;
			var node = Dsq.$(append_post_id);
			while (node = node.nextSibling) {
				if (!node || node.nodeType == 1) { // 1 == Node.ELEMENT_NODE
					break;
				}
			}
			if (!node) {
				node = Dsq.$(append_post_id);
			}
			node.parentNode.insertBefore(div, node);
		}
	};

	this.incrementPostCount = function() {
		
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');

		if (num_posts) {
			num_posts.innerHTML = parseInt(num_posts.innerHTML, 10) + 1;
		}
		if (total_posts) {
			total_posts.innerHTML = parseInt(total_posts.innerHTML, 10) + 1;
		}
	}
	
	this.outlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className += ' dsq-comment-outline';
		setTimeout("(function () { Dsq.Post.clearOutlineComment(" + post_id + ") })()", 3000);
	};
	
	this.clearOutlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className = Dsq.$('dsq-comment-' + post_id).className.replace('dsq-comment-outline', '');
	};

	this.showMenu = function(el, id, name) {
		var anchorPos = Dsq.Utils.findPos(el);
		var menu = document.createElement('ul');

		if(this.openedMenu) {
			if(this.openedMenu.linkClicked) {
				this.openedMenu.linkClicked = false;
				return;
			}
		}

		switch(name) {
			case 'more':
				menu.innerHTML = Dsq.Templates.menuMore(id);
				break;
			case 'media':
				menu.innerHTML = Dsq.Templates.menuMedia(id);
				break;
			default:
				break;
		}

		// Add menu to document body
		menu.id = 'dsq-menu-' + id;
		menu.className = 'dsq-menu';
		Dsq.$b.appendChild(menu);

		// Position and show
		anchorPos[1] += 15;
		menu.style.left = anchorPos[0] + 'px';
		menu.style.top = anchorPos[1] + 'px';
		menu.style.display = 'block';

		// Set global reference
		this.openedMenu = {
			'el' : menu,
			'id' : id,
			'name' : name,
			'linkClicked' : false
		};

		// Set listener
		this.menuEventListener = Dsq.Utils.addEventListener(document, 'mouseup', this._hideMenu);
	};

	this._hideMenu = function(e) {
		var el = e.target || e.srcElement;
		var openedMenu = Dsq.Post.openedMenu.el;
		var id = Dsq.Post.openedMenu.id;

		if(!id) {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link';
		} else {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link-' + id;
		}

		if(!openedMenu) {
			return;
		}

		if(!Dsq.Popup.isClicked(e, openedMenu.id)) {
			openedMenu.style.display = 'none';
			Dsq.Utils.removeEventListener(Dsq.Post.menuEventListener);
			Dsq.Utils.deleteNode(openedMenu);

		} else {
			// Hide the menu if a link was clicked inside the menu.  We can't
			// completely remove the menu until the onclick event on the link
			// fires, but the menuEventListener will prevent multiple menus
			// from polluting the DOM.
			if(el && typeof el.href != 'undefined') {
				openedMenu.style.display = 'none';
				Dsq.Post.openedMenu.el = null;
			}
		}

		if(Dsq.Popup.isClicked(e, link)) {
 			Dsq.Post.openedMenu.linkClicked = true;
		}
	};


	this.getUserServices = function(user_key, id) {
		if(!user_key && id) {
			var _meta = Dsq.jsonData.posts[id];
			user_key = _meta.user_key;
		}
		var userData = Dsq.jsonData['users'][user_key];
		var userServices = [];

		// Keep a full list of supported services. This is the order they will display in the drop-profile.
		// Each service must have a corresponding case in _buildServiceUrl()
		var supportedServices = ['blog', 'twitter', 'facebook', 'tumblr'];

		function _buildServiceUrl(serviceName) {
			var data = userData[serviceName];
			var services = {
				blog:		function(d) { return d; },
				twitter:	function(d) { return d; },
				facebook:	function(d) { return d; },
				tumblr:		function(d) { return 'http://' + d + '.tumblr.com'; }
			};
			return services[serviceName](data);
		}

		for(var i = 0; i < supportedServices.length; i++) {
			if(userData[supportedServices[i]]) {
				var serviceUrl = _buildServiceUrl(supportedServices[i]);
				userServices.push({'name' : supportedServices[i], 'url' : serviceUrl});
			}
		}
		return userServices;
	}

	this.dropProfile = function(id) {
		var dp = Dsq.$('dsq-drop-profile-' + id);

		// IE6 needs JS to display/hide. All other browsers use CSS.
		if(dp) {
			if(Dsq.Utils.ie6) dp.style.display = (dp.style.display == 'inline') ? 'none' : 'inline';
			return false;
		} else {
			dp = document.createElement('ul');
		}

		dp.id = 'dsq-drop-profile-' + id;
		dp.className = 'dsq-drop-profile';

		if(Dsq.Utils.ie6) { dp.style.display = 'inline'; }

		var container = Dsq.$('dsq-header-avatar-' + id);
		dp.innerHTML = Dsq.Templates.dropProfile(id);
		container.appendChild(dp);
	};

	this.dropProfileMore = function(el, id) {
		var hiddenItems = Dsq.$('dsq-drop-hidden-' + id);

		hiddenItems.style.display = 'inline';
		el.parentNode.style.display = 'none';
	};

	this._updateReplyLinks = function(el, id) {
		// Update "reply / cancel" links based on state.
		var displayDict = {};

		if(id) {
			if(this.stateReplyToggled[id]) {
				el.innerHTML = 'Cancel';
				displayDict['media'] = 'inline';
				displayDict['edit'] = 'none';
			} else {
				el.innerHTML = 'Reply';
				displayDict['media'] = 'none';
				displayDict['edit'] = 'inline';
			}
		}

		for(var key in displayDict) {
			if(displayDict.hasOwnProperty(key)) {
				var	linkEl = Dsq.$('dsq-' + key + '-el-' + id),
					spacer = Dsq.$('dsq-' + key + '-spacer-' + id);

				if(linkEl) {
					linkEl.style.display = displayDict[key];
					if(spacer) spacer.style.display = displayDict[key];
				}
			}
		}
	};

	this._updateMediaLinks = function(el, id) {
		// Update "use media / cancel" links based on state.
		var appendId = (id) ? ('-' + id) : '';
		var link = Dsq.$('dsq-media-link' + appendId);

		if(this.stateRecordLink[id]) {
			link.innerHTML = 'Cancel Media';
			link.onclick = function() { Dsq.Post.toggleMediaReply(link, id); return false; };
		} else {
			link.innerHTML = 'Use Media <small>&#9660;</small>';
			link.onclick = function() { Dsq.Post.showMenu(link, id, 'media'); return false; };
		}
	};

	this.toggleReply = function(el, id) {
		// Create reply IFrame
		if (window.disqus_use_postmessage) {
			if (!this.stateReplyToggled[id]) {
				Dsq.$('dsq-reply-' + id).style.display = 'block';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				// Create IFrame if it doesn't exist.
				if (!Dsq.frames['reply_' + id]) {
					var _meta = Dsq.jsonData.posts[id];
					Dsq.frames['reply_' + id] = new Dsq.ReplyFrame(Dsq.$('dsq-reply-frame-' + id), id);
					Dsq.frames['reply_' + id].init();
					Dsq.frames['reply_' + id].setState(id, _meta.depth);
				}
			} else {
				Dsq.$('dsq-reply-' + id).style.display = 'none';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
			}
		} else {
			// DEPRECATED
			if(!this.stateReplyToggled[id]) {
				// Reply toolbar
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(Dsq.$('dsq-reply-' + id), id);
			} else {
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
				Dsq.Iframes.hideAllInContainer(Dsq.$('dsq-reply-' + id));
				if(this.stateRecordLink[id]) {
					// HACK: Cancel media before canceling self.
					this.toggleMediaReply(Dsq.$('dsq-media-link-' + id), id);
				}
			}
		}

		this.stateReplyToggled[id] = !this.stateReplyToggled[id];
		this._updateReplyLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-reply-' + id); }

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: id,
			opened: this.stateReplyToggled[id]
		});
	};

	this.toggleMediaReply = function(el, id, xtype) {
		id = id || 0;
		if(id) {
			var container = Dsq.$('dsq-reply-' + id);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(!this.stateRecordLink[id]) {
			Dsq.Iframes.showReplyIframeInContainer(container, id, {xtype:xtype}, 'dsq-post-video');
		} else {
			Dsq.Iframes.showReplyIframeInContainer(container, id);
		}
		this.stateRecordLink[id] = !this.stateRecordLink[id];
		this._updateMediaLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};

	this.edit = function(el, id) {
		Dsq.$('dsq-comment-message-' + id).innerHTML = Dsq.Templates.frameEdit(id);
		el.parentNode.style.display = 'none';
		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-comment-message-' + id); }
	};

    this.rate = function(el, id, vote) {
		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
                Dsq.$('dsq-rate-cont-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
            }

            Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/vote.js'
                + '?post_id='    + id
                + '&vote='        + vote);

		} else {
			Dsq.Popup.login(Dsq.Strings.TO_RATE_PLEASE_LOG_IN);
		}
    };

	this.report = function(id, confirmed) {
		if(confirmed) {
			Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/ray_ozzie_delivers_with_live_mesh/post_report/', {'post_id': id});
			Dsq.Popup.popModal('Thank you. This comment has been flagged for moderator attention.', 'Successfully flagged');
			Dsq.Utils.deleteNode(Dsq.$('dsq-post-report-' + id));
		} else {
			var title = Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT;
			var message = Dsq.Strings.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR + '? \
			<br /><br /> \
			<button type="button" onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<button type="button" onclick="Dsq.Post.report(' + id + ', true);"><strong>' + Dsq.Strings.YES + '</strong>, ' + Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT + '</button><br /><br />'
			+ Dsq.Strings.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION + '. \
			';

			Dsq.Popup.popModal(message, title, id);
		}
	};



	this.showAlert = function(id, msg) {
		var msgEl = Dsq.$('dsq-comment-message-' + id);
		var alert = '<div class="dsq-comment-alert">' + msg + '</div>';

		msgEl.innerHTML = alert + msgEl.innerHTML;
	};

};
// Dsq.Post


/**
 * Dsq.Thread
 */
Dsq.Thread = new function() {
	this.fc = null;
	this.ff = null;
	this.ac = null;

	
	this.adminIsOn = false;

	
	
	

	this.hlComment = null;
	this.hlCommentClass = null;

	this.getNextComment = function(el) {
		var start_id = el.id;
		while(el = el.nextSibling) {
			if(el.id && el.id.indexOf('dsq-comment-') != -1 && el.id != start_id) {
				return el;
			}
		}
		return null;
	};

	this.getActiveCommentId = function() {
		if (document.URL.indexOf('#comment-') >= 0) {
			var anchor = document.URL.slice(document.URL.indexOf('#') + 1);
			return anchor.replace('comment-', '');
		}
		return null;
	};

	this.highlightAnchor = function() {
		var i = this.getActiveCommentId();
		if (i == null) return false;
		var id = 'dsq-comment-' + i;
		var hash = window.location.hash;

		// Toggle the hash incase the comment isn't available when the page loads
		// for WebKit-based browsers.
		if (Dsq.Utils.webkit) {
			window.location.hash = '';
			window.location.hash = hash;
		}

		this.hlComment = Dsq.$(id);
		// Adding this conditional guard pending #289
		if (!this.hlComment) {
			return;
		}
		this.hlCommentClass = this.hlComment.className;
		this.hlComment.className += ' dsq-hl-anchor';

		setTimeout("Dsq.Thread.highlightClear()", 3000);
	};

	this.highlightClear = function() {
		if (!this.hlComment) {
			return;
		}
		this.hlComment.className = this.hlCommentClass;
	};

	this.login = function(toggle) {
		// toggle id is #dsq-reply-login-[id]
		var postId;
		if(toggle.id.indexOf('dsq-reply-login') != -1) {
			postId = toggle.id.slice(16);
			var container = Dsq.$('dsq-reply-' + postId);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(toggle) {
			if(toggle.className == 'dsq-login-active') {
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(container, postId);
				toggle.className = '';
			} else {
				Dsq.Iframes.showLoginIframeInContainer(container, postId);
				toggle.className = 'dsq-login-active';
			}
		} else {
			Dsq.Iframes.showLoginIframeInContainer(container, postId);
		}

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};


	this.paginate = function(page, el_clicked, per_page) {
		// Use extra_params to pass any override parameters that we need to persist.
		var extra_params = '';

		// "Per page" can either be overriden by providing it as an argument
		// (per-call) or setting the disqus_per_page override variable (global).
		if(typeof per_page == 'undefined') {
			per_page = null;
		}
		if(typeof disqus_per_page != 'undefined' && per_page === null) {
			per_page = disqus_per_page;
		}

		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}
		if(per_page !== null) {
			extra_params += '&per_page=' + per_page;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'ray_ozzie_delivers_with_live_mesh'
			+ '&p='		+ page
			+ extra_params);
	};

	this.sortBy = function(sort) {
		var disqus_script = document.createElement('script');
		var disqus_date = new Date();

		if (location.hash != '') {
			location.hash = '#disqus_thread';
		}

		if(typeof(disqus_url) == 'undefined') {
			disqus_url = disqus_href;
		}
		disqus_script.type = 'text/javascript';
		disqus_script.src = 'http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'ray_ozzie_delivers_with_live_mesh'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

		Dsq.$('dsq-comments').innerHTML = '<img src="http://media.disqus.com/images/loading.gif">';
		Dsq.container.appendChild(disqus_script);
	};

	this.subscribe = function(status, email) {
		// `status` is an int -- 1 to subscribe, 0 to unsubscribe
		if(Dsq.jsonData.request.is_authenticated || email) {
			// If authenticated user OR anonymous email provided

			if(email) {
				Dsq.Popup._closePopup(null, true);
			}

			Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'ray_ozzie_delivers_with_live_mesh'
				+ '&email=' 	+ encodeURIComponent(email));

		} else if(!email) {
			// If anonymous user and no email has been provided yet, prompt for email

			var title = 'Subscribe to this comment thread';
			var message = ' \
				New comments will be sent directly to your email inbox! \
				<div class="dsq-subscribe-submit"> \
					<p><strong>Enter your email address below.</strong></p> \
					<input type="text" id="dsq-subscribe-email"> \
					<button type="button" onclick="Dsq.Thread.subscribe(1, Dsq.$(\'dsq-subscribe-email\').value)">Subscribe</button> \
				</div> \
			';

			Dsq.Popup.popModal(message, title);
		}
	};

	this.showSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return;
		}

		/* The form has to be re-designed when more options will come out. */
		var html = 'Automatically close comments after <input size="3" id="dsq-thread-days-alive" value="' + Dsq.jsonData.thread.days_alive + '" type="text" /> days. Existing comments will still be displayed.<br /><br />(Using 0 days will disable this feature)<br /><br />'
								 + '<button type="button" onclick="Dsq.Thread.updateDaysAlive();" class="dsq-button-small"><span>Save</span></button>'
								 + '<span id="dsq-thread-settings-status" class="dsq-options-status"></span>';

		Dsq.Popup.popModal(html, 'Settings');
	};

  this.showModeratorActions = function() {
      if (!Dsq.jsonData.request.is_moderator) {
          return;
      }

      var html = '<div class="dsq-moderate-options"><table><tr>' +
                 '<td>' + Dsq.Strings.ACTIONS + '</td><td><ul>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleClosed(); return false;">' +
              (Dsq.jsonData.thread.closed ? Dsq.Strings.OPEN_THREAD : Dsq.Strings.CLOSE_THREAD) +
              '</a></li>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleKilled(); return false;">' +
              (Dsq.jsonData.thread.killed ? Dsq.Strings.RESTORE_THREAD : Dsq.Strings.REMOVE_THREAD) +
              '</a></li>';
      html += '</ul></td></tr></table></div>' +
              '<p>Go to the full <a href="http://disqus.com/comments/moderate-threads/" target="_blank">moderate panel</a> for more options.</p>';
      Dsq.Popup.popModal(html, Dsq.Strings.MODERATE_OPTIONS);
  };

	this.updateDaysAlive = function() {
		  var days = Dsq.$('dsq-thread-days-alive').value;
		  var status = Dsq.$('dsq-thread-settings-status');
		  Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		  status.innerHTML = 'Saved!';
		  window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

  this.toggleClosed = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/toggle_thread_closed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };

  this.toggleKilled = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/toggle_thread_killed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };
};
// Dsq.Thread

Dsq.Events = function() {
	var obj = {};

	// Private
	var handlers = {};
	var getHandlers = function(event) {
		if (handlers[event] === undefined) {
			handlers[event] = [];
		}
		return handlers[event];
	};

	// Public
	// Value keys : postId, node, xtype
	obj.REPLY_IFRAME_CREATED = 1;
	// Value keys : postId, opened
	obj.REPLY_IFRAME_TOGGLED = 2;
	obj.fire = function(event, opt_value) {
		if (!event) {
			throw new Error('Unknown event');
		}
		var value = opt_value || {};
		for (var i=0; i<getHandlers(event).length; i++) {
			getHandlers(event)[i](value);
		}
	};
	obj.addHandler = function(event, callback) {
		getHandlers(event).push(callback);
	};

	return obj;
}();

/**
 * Dsq.Realtime
 */
Dsq.Realtime = new function() {
	var initialized = false;
	var interval = null;
	var last_checked = Dsq.jsonData.request.timestamp;
	var new_posts = [];
	var ongoing_request = false;
	var prev_script = null;

	function updateNewPostCount() {
		Dsq.$('dsq-realtime-alert').style.display = new_posts.length ? 'block' : 'none';

		Dsq.$('dsq-realtime-queued').innerHTML = new_posts.length
		+ ' new '
		+ Dsq.Utils.pluralize(new_posts.length, 'comment', 'comments')
		+ Dsq.Utils.pluralize(new_posts.length, ' was', ' were')
		+ ' just posted.';

		Dsq.$('dsq-realtime-show').innerHTML = '(' + Dsq.Strings.SHOW + ')';
	}

	function insertNewPosts() {
		var post_id = null;
		var after_id = Dsq.$('dsq-sort-select').value === 'oldest' ? -1 : null;

		for (var i=0; i<new_posts.length; i++) {
			post_id = new_posts[i];
			Dsq.Post.insert(after_id, post_id, Dsq.jsonData.posts[post_id].message);
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		}
		new_posts = [];
	}

	this.enableInterval = function() {
		interval = setInterval(Dsq.Realtime.check, Dsq.jsonData.context.realtime_speed);
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.ENABLED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.PAUSE + ')';
	}

	this.disableInterval = function() {
		if (interval) {
			clearInterval(interval);
			interval = null;
		}
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.PAUSED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.RESUME + ')';
	}

	this.toggleInterval = function() {
		if (!interval) {
			Dsq.Realtime.enableInterval();
		} else {
			Dsq.Realtime.disableInterval();
		}
		return false;
	}

	this.initialize = function() {
		if (!initialized) {
			initialized = true;
			Dsq.$('dsq-realtime-toggle').onclick = this.toggleInterval;
			if (!Dsq.jsonData.forum.streaming_realtime) {
				Dsq.$('dsq-realtime-show').onclick = this.show;
				updateNewPostCount();
			}
			if (Dsq.jsonData.thread.realtime_paused) {
				Dsq.Realtime.disableInterval();
			} else {
				Dsq.Realtime.enableInterval();
			}
		}
	}

	this.show = function() {
		insertNewPosts();
		updateNewPostCount();
		return false;
	}

	this.check = function() {
		if (!ongoing_request && Dsq.jsonData.realtime_enabled) {
			if (prev_script) {
				prev_script.parentNode.removeChild(prev_script);
			}
			ongoing_request = true;
			prev_script = Dsq.Utils.execScript('http://disqus.com/forums/18353164/realtime.js?timestamp=' + last_checked);
		}
	};

	this.update = function(timestamp, posts, users) {
		ongoing_request = false;
		last_checked = timestamp;

		if (users) {
			for (var user_id in users) {
				if (users.hasOwnProperty(user_id)) {
					if (!Dsq.jsonData.users[user_id]) {
						Dsq.jsonData.users[user_id] = users[user_id];
					}
				}
			}
		}

		if (posts) {
			for (var post_id in posts) {
				if (posts.hasOwnProperty(post_id)) {
					if (!Dsq.jsonData.posts[post_id]) {
						Dsq.jsonData.posts[post_id] = posts[post_id];
						new_posts.push(post_id);
					}
				}
			}

			if (Dsq.jsonData.forum.streaming_realtime) {
				insertNewPosts();
			} else {
				updateNewPostCount();
			}
		}
	};

}();

// DEPRECATED
Dsq.Iframes = function() {
	// Different style of object from the above. Hoping to switch to this for some reason.
	var obj = {};

	// Private
	var showIframeInContainer = function(container, id, markup) {
		// Look through container for iframes, hiding them, except show one that matches id
		// If none of them matched id, create a new iframe using markup and insert it.
		// Returns the iframe node if and only if it was newly created.
		var found = false;
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				if (child.id == id) {
					child.style.display = 'block';
					found = true;
				} else {
					child.style.display = 'none';
				}
			}
		}
		if (found) {
			return;
		}
		// The iframe wasn't found, so construct it and add it to the container.
		// Don't use innerHTML because it might reload iframes
		var div = document.createElement('div');
		div.innerHTML = markup;
		var iframe = div.childNodes[0];
		div.removeChild(iframe);
		container.appendChild(iframe);
		return iframe;
	};

	// Public
	obj.makeReplyIframeId = function(opt_postId, opt_xtype) {
		var id = 'dsq-post-add-iframe';
		if (opt_xtype) {
			id += '-' + opt_xtype;
		}
		if (opt_postId) {
			id += '-' + opt_postId;
		}
		return id;
	};
	obj.makeLoginIframeId = function(opt_postId) {
		if (!opt_postId) {
			return 'dsq-login-iframe';
		}
		return 'dsq-login-iframe-' + opt_postId;
	};
	obj.makeReplyIframeName = function(opt_postId, opt_xtype) {
		var name = 'dsq-reply-frame';
		if (opt_xtype) {
			name += '-' + opt_xtype;
		}
		if (opt_postId) {
			name += '-' + opt_postId;
		}
		return name;
	};
	obj.showReplyIframeInContainer = function(container, opt_postId, opt_extraParams, opt_className) {
		// Construct the id so we can check if it's already present.
		// Hide any other iframes we find, and show this one if it's found.
		var params = opt_extraParams || {};
		// use xtype in the id and name so we can distinguish media replies from text replies:
		var id = Dsq.Iframes.makeReplyIframeId(opt_postId, params.xtype);
		var name = Dsq.Iframes.makeReplyIframeName(opt_postId, params.xtype);
		var attributes = {
			'id': id,
			'name': name,
			'class': opt_className || 'dsq-post-reply'
			};
		var markup = Dsq.Templates.frameReply(opt_postId, opt_extraParams, attributes);
		var iframe = showIframeInContainer(container, id, markup);
		// It was newly created
		if (iframe) {
			Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_CREATED, {
				postId: opt_postId,
				node: iframe,
				xtype: params.xtype
			});
		}
	};
	obj.showLoginIframeInContainer = function(container, opt_postId) {
		var id = Dsq.Iframes.makeLoginIframeId(opt_postId);
		var markup = Dsq.Templates.frameLogin({id: id});
		showIframeInContainer(container, id, markup);
	};
	obj.showReplyIframeInContainerIfAllowed = function(container, opt_postId) {
		if (Dsq.jsonData.context.show_reply) {
			obj.showReplyIframeInContainer(container, opt_postId);
		} else {
			obj.hideAllInContainer(container);
		}
	};
	obj.hideAllInContainer = function(container) {
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				child.style.display = 'none';
			}
		}
	};

	return obj;
}();

Dsq.Twitter = new function() {
	var that = this;

	this.startTwitterConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._twitterWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/twitter/begin/', 'twitterWindow', popupParams);
		that._twitterInterval = window.setInterval(that.completeTwitterConnect, 1000);
	};

	this.completeTwitterConnect = function() {
		if (that._twitterWindow.closed) {
			window.clearInterval(that._twitterInterval);
			window.location.reload();
		}
	};
};

Dsq.Yahoo = new function() {
	var that = this;

	this.startYahooConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._yahooWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/yahoo/begin/', 'yahooWindow', popupParams);
		that._yahooInterval = window.setInterval(that.completeYahooConnect, 1000);
	};

	this.completeYahooConnect = function() {
		if (that._yahooWindow.closed) {
			window.clearInterval(that._yahooInterval);
			window.location.reload();
		}
	};
};

Dsq.OpenID = new function() {
	var that = this;

	this.requestURL = function() {
		var message = '<table class="dsq-openid-form"><tr><td style="vertical-align:top;" rowspan="2"><img src="' + Dsq.jsonData.settings.media_url + '/images/openid-icon-100x100.png" /></td>';
		message += '<td><label for="dsq-openid-url">OpenID URL:</label></td><td><input type="text" id="dsq-openid-url" /></td></tr>';
		message += '<tr><td><label for="dsq-openid-username">Display name:</label></td><td><input type="text" id="dsq-openid-username" /></td></tr>';
		message += '<tr><td class="dsq-openid-submit" colspan="3"><input type="button" value="Sign in" onclick="Dsq.OpenID.startConnect();" /></td></tr>';
		message += "</table>";

		Dsq.Popup.popModal(message, 'Sign in using OpenID');
	};

	this.startConnect = function() {
		var isblank = function(str) {
			return /^\s*$/.test(str);
		};

		var openid_url = Dsq.$('dsq-openid-url').value;
		var username = Dsq.$('dsq-openid-username').value;

		if (isblank(openid_url)) {
			return;
		}

		var popupParams = 'location=0,status=0,width=800,height=500';
		var url = Dsq.jsonData.settings.disqus_url + '/_ax/openid/begin/' + '?url=' + encodeURIComponent(openid_url) + '&username=' + encodeURIComponent(username);
		that._openidWindow = window.open(url, 'openidWindow', popupParams);
		that._openidInterval = window.setInterval(that.completeConnect, 1000);
	};

	this.completeConnect = function() {
		if (that._openidWindow.closed) {
			window.clearInterval(that._openidInterval);
			window.location.reload();
		}
	};
};

Dsq.Reaction = new function() {
	var that = this;

	this.hide = function(id) {
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/hidereaction.js?' + 'reaction_id=' + id);
	};

	this.reportMissingReactions = function() {
		if (!Dsq.jsonData.request.is_moderator || !Dsq.jsonData.forum.reactions_enabled) {
			return;
		}

		if (Dsq.jsonData.thread.queued) {
			Dsq.Popup.popModal('Your report has been received. The system will automatically search for new reactions; if any are found, they will be displayed on this comment thread.<br/><br/>Thank&nbsp;you.',
												 'Reported missing reactions');
			return;
		}

		Dsq.Utils.execScript(Dsq.jsonData.settings.disqus_url + '/forums/scobleizer/queueurl.js');
	};
};

Dsq.CNN = function() {
	var obj = {};

	obj.authenticate = function() {
		var url = Dsq.jsonData.settings.disqus_url + "/saml/cnn/try/";
		Dsq.Utils.postToUrl(url, {'target': document.location}, true);
	};

	return obj;
}();


if(Dsq.Utils.ie6) {
	(function() {
		DSQ_HEADER_AVATAR_RE = /<div class="dsq-header-avatar"(.*?)>/gim;
		Dsq.Templates.registerFilter('postPrependHeader', function(html, post_id) {
			// Add "onmouseout" for dsq-header-avatar for dropProfile
			// functionality since IE6 cannot use :hover.
			function _headerAvatarReplace(content, inner, _unused, html) {
				return '<div class="dsq-header-avatar" '
					+ inner
					+ ' onmouseout="Dsq.Post.dropProfile(' + post_id + ')">';
			}
			html = html.replace(DSQ_HEADER_AVATAR_RE, _headerAvatarReplace);
			return html;
		});
	})();
}





	// TODO: Move Seesmic code outside of the main script.  Don't let this script clobber the global namespace.
	if(typeof seesmic == 'undefined') { var seesmic = {}; }
	seesmic.widget = new function () {
		this.callback = function (data) {
			playerVersion = data.disqusplayer;
		};
	};

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://seesmic.com/version.js?callback=seesmic.widget.callback');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://media.disqus.com/javascript/library/swfobject.js');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	function see_play_video(_videoUri, _add) {
		var swf = !!playerVersion ? playerVersion : 'http://seesmic.com/embeds/StandalonePlayer.swf';

		flashcontentDiv = Dsq.$(_videoUri + '_content');
		previewDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_preview');
		hideDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_hide');
		showDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_show');
		if(_add) {
			// push flash widget
			var so = new SWFObject(swf, 'sotester', '300', '270', '9', '#000000');
			so.addVariable('video', _videoUri);
			so.addParam('allowFullScreen', 'true');
			so.addParam('allowScriptAccess','always');
			so.useExpressInstall('swfobject/expressinstall.swf');
			so.write(_videoUri + '_content');

			previewDiv.style.display = 'none';
			hideDiv.style.display = 'block';
			showDiv.style.display = 'none';
		}
		else {
			flashcontentDiv.innerHTML = '';
			previewDiv.style.display = 'block';
			hideDiv.style.display = 'none';
			showDiv.style.display = 'block';
		}
	};





(function() {
	//
	// Load theme.  This overrides the base templates with template functions
	// from the respective themes.
	//
	if (Dsq.jsonData.integration.theme == 4) {
		var theme = 'narcissus';
		// HACK: Set variable on window to use post message.
		window.disqus_use_postmessage = true;

		
		for(var prop in Dsq.Themes[theme]) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Templates[prop] = Dsq.Themes[theme][prop];
			}
		}
		
		for(var prop in Dsq.Post) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Post[prop] = Dsq.Themes[theme][prop];
			}
		}
	}

	//
	// Register templates.  This must be done after all themes are loaded.
	//
	Dsq.Templates.registerTemplate('authPost', Dsq.Templates.authPost);
	Dsq.Templates.registerTemplate('header', Dsq.Templates.header);
	Dsq.Templates.registerTemplate('footer', Dsq.Templates.footer);
	Dsq.Templates.registerTemplate('trackbacks', Dsq.Templates.trackbacks);
	Dsq.Templates.registerTemplate('reactions', Dsq.Templates.reactions);
	Dsq.Templates.registerTemplate('prependPost', Dsq.Templates.prependPost);
	Dsq.Templates.registerTemplate('appendPost', Dsq.Templates.appendPost);
	Dsq.Templates.registerTemplate('postPrependHeader', Dsq.Templates.postPrependHeader);
	Dsq.Templates.registerTemplate('postAppendHeader', Dsq.Templates.postAppendHeader);
	Dsq.Templates.registerTemplate('preBody', Dsq.Templates.preBody);
	Dsq.Templates.registerTemplate('postBody', Dsq.Templates.postBody);
	Dsq.Templates.registerTemplate('postFooter', Dsq.Templates.postFooter);
	Dsq.Templates.registerTemplate('_popupGeneric', Dsq.Templates._popupGeneric);
	Dsq.Templates.registerTemplate('voted', Dsq.Templates.voted);
	Dsq.Templates.registerTemplate('popupProfile', Dsq.Templates.popupProfile);
	Dsq.Templates.registerTemplate('postBox', Dsq.Templates.postBox);
	Dsq.Templates.registerTemplate('pagination', Dsq.Templates.pagination);
	Dsq.Templates.registerTemplate('postComment_onSuccess', Dsq.Templates.postComment_onSuccess);

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-9704016">\
	 <div id="dsq-comment-header-9704016" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704016" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704016" href="http://bits.samiq.net/" target="_blank" rel="nofollow">Samiq</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704016" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704016" class="dsq-comment-message">Thanks man! Now the future of web is set loose to keep changing itself up.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704015">\
	 <div id="dsq-comment-header-9704015" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704015" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704015" href="http://mikegalos.spaces.live.com/" target="_blank" rel="nofollow">Mike Galos</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704015" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704015" class="dsq-comment-message">Now THIS is worth getting excited about...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704017">\
	 <div id="dsq-comment-header-9704017" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704017" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704017" href="http://twitter.com/dmgerbino" target="_blank" rel="nofollow">David Gerbino</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704017" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704017" class="dsq-comment-message">I have always been a Ray Ozzie fan since his days at Lotus Development in Massachusetts. I feel strange saying this but I am actually excited about this initiative from Microsoft. However, they do need to support Linux.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704014">\
	 <div id="dsq-comment-header-9704014" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704014" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704014" href="http://expand2web.com/blog" target="_blank" rel="nofollow">Don Campbell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704014" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704014" class="dsq-comment-message">Now THIS sounds interesting. Finally the blend of desktop and the Web that we were all hoping Vista would be. I\'m looking forward to seeing more about this at Web 2.0 this week. Thanks for the scoop Robert.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704034">\
	 <div id="dsq-comment-header-9704034" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704034" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704034">Karim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704034" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704034" class="dsq-comment-message">Sounds "groove-y."<br><br>Groove++ ?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704035">\
	 <div id="dsq-comment-header-9704035" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704035" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704035" href="http://edwink.devhd.com/" target="_blank" rel="nofollow">Edwin Khodabakchian</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704035" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704035" class="dsq-comment-message">Sounds interesting. Does it have any relationship with Silverlight? Do you have a feeling as to what will be some of the killer apps which will drive the adoption of this new kinds of platforms? Finally this will hopefully push google to get a little bit more vocal about Google Gears (which was  initially boxed as offline) but is really about being able to push the limits of the browsers while keeping the web open. Looking forward to the qik videos.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704036">\
	 <div id="dsq-comment-header-9704036" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704036" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704036" href="http://bits.samiq.net/" target="_blank" rel="nofollow">Samiq</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704036" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704036" class="dsq-comment-message">Mesh site is up and running @ <a href="https://www.mesh.com/" rel="nofollow">https://www.mesh.com/</a> you have to go thru the MS Connect site to fill up the registration info.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704037">\
	 <div id="dsq-comment-header-9704037" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704037" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704037" href="http://blog.jeromeparadis.com/" target="_blank" rel="nofollow">Jerome Paradis</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704037" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704037" class="dsq-comment-message">Thanks for the quick overview.<br><br>Seems quite interesting. It\'s refreshing to see something really new and innovating from Microsoft.<br><br>If they can somehow quickly fulfill this vision to a multitude of devices, it might very well have a bright future.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704038">\
	 <div id="dsq-comment-header-9704038" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704038" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704038" href="http://www.sax.net/live" target="_blank" rel="nofollow">Mike Sax</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704038" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704038" class="dsq-comment-message">Mesh is Groove scaled up.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704039">\
	 <div id="dsq-comment-header-9704039" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704039" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704039" href="http://secondthoughts.typepad.com/" target="_blank" rel="nofollow">Prokofy Neva</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704039" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704039" class="dsq-comment-message">&gt;It’s a new two-way system that both receives Atom (default) or RSS feeds from other MOE’s as well as sends them out to other MOEs.<br><br>Can you explain why this is important and what it does, really.<br><br>Don\'t I have enough feeds to read that I pick without having your feeds you picked shovelled at me? or? Explain.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704040">\
	 <div id="dsq-comment-header-9704040" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704040" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704040">keith</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704040" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704040" class="dsq-comment-message">wow, online file storage with file revision history...<br><br>somebody call gutenberg and tell him his reign is over.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704041">\
	 <div id="dsq-comment-header-9704041" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704041" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704041" href="http://www.timharrisblog.com/" target="_blank" rel="nofollow">Tim Harris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704041" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704041" class="dsq-comment-message">Just wait until hackers exploit the print layer to this mesh stuff, enough to grab root and start injecting python code into all of your RSS networks which execute beautifully when you need to sync this crap. HTTP ? Wonderful.  HTTPS ? Yea right.  I\'m not going to drink this Koolaid.  Neither should IT.<br><br>100 individuals to make this POS ?  How many do you think they have dedicated to security ?  Web server ?  We talking about expensive IIS servers that will need 10 IT people to watch it ?  What does Mesh look like on the server ?<br><br>I\'m sick and tired of overinflated companies trying to force feed me the "future."  The web is dead.  It\'s gone. Finished.  Hackers have won.<br><br>I am ready to see the world without Msoft.  I\'m ready to see something better.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704042">\
	 <div id="dsq-comment-header-9704042" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704042" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704042" href="http://www.ratdiary.com/" target="_blank" rel="nofollow">Sprague Dawley</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704042" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704042" class="dsq-comment-message">Read Mary Jo\'s summary -- more details (and graphs).<br><br>It sounds genius. Very ambitious.<br><br>Now, Robert, aren\'t you glad you hung on to that MSFT stock..?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704043">\
	 <div id="dsq-comment-header-9704043" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704043" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704043">therealmccrea</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704043" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704043" class="dsq-comment-message">Interesting...not quite sure what to make of this, but I love that the pace of change is heating up. This is Microsoft responding to Google\'s vision of moving everything to "the cloud." If they are successful, it will be one for the textbooks.<br><br>Thanks, Robert, for the Plaxo mention! Not sure I see the connection (aside from sync playing a role), but we live for a world of data portability, and we seek, as always to be a little "Switzerland" with regards the various warring factions.<br><br>:)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704044">\
	 <div id="dsq-comment-header-9704044" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704044" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704044" href="http://www.timharrisblog.com/" target="_blank" rel="nofollow">Tim Harris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704044" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704044" class="dsq-comment-message">OK. So I see there is SSL.  Seriously.  I have no idea what this crap is.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704045">\
	 <div id="dsq-comment-header-9704045" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704045" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704045">Karim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704045" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704045" class="dsq-comment-message"><i>100 individuals to make this POS ? How many do you think they have dedicated to security ? Web server ? We talking about expensive IIS servers that will need 10 IT people to watch it ? What does Mesh look like on the server?</i><br><br>I\'m pretty sure Dvorak has the whole "crazy rant" business wrapped up.  FYI.<br><br><i>I am ready to see the world without Msoft. </i><br><br>It was called the 19th Century, and you missed it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704046">\
	 <div id="dsq-comment-header-9704046" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704046" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704046" href="http://www.sumo.tv/" target="_blank" rel="nofollow">Shakir Razak</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704046" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704046" class="dsq-comment-message">Hi Robert,<br><br>What I said Somewhere else:<br><br><br>The Inevitable future.<br><br><br>Robbie Bach outlined this as part of of X-box 360/Gaming.<br><br><br>What it really is, is Microsoft trying to retain it’s market as it slowly waves good-bye.<br><br><br>Almost too late, in competition with open-API’S and the Symantic Web 3.0, but for the probable lazy developers who won’t have to do much work just to put everything through Live Mesh, and familiar 90% of users who mostly don’t know or care what Web 2.0 is!<br><br><br><br>If Microsoft get this onto Windows Mobile (+ symbian compatibility) and offer a decent web-office, they might just make it game-over for the other players, but we are talking about Microsoft here.<br><br><br>Yours kindly,<br><br><br>Shakir Razak</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704048">\
	 <div id="dsq-comment-header-9704048" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704048" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704048">arnix</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704048" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704048" class="dsq-comment-message">Channel 10 has a video at <a href="http://on10.net/blogs/nic/Hands-on-with-Live-Mesh/" rel="nofollow">http://on10.net/blogs/nic/Hands-on-with-Live-Mesh/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704049">\
	 <div id="dsq-comment-header-9704049" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704049" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704049" href="http://www.ratdiary.com/" target="_blank" rel="nofollow">Sprague Dawley</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704049" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704049" class="dsq-comment-message">Tim,<br><br>It\'s the first big step to a web operating system. Apps residing in the cloud, with ubiquitous access from scores of nodes ("desktops").<br><br>If they can pull it off... wow.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704050">\
	 <div id="dsq-comment-header-9704050" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704050" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704050">Susan Beebe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704050" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704050" class="dsq-comment-message">Robert,<br><br>This is awesome news from M$ re MOE - M$ new Live Mesh environment.<br><br>I am a MCSE: Security &amp; Messaging and love Microsoft and have been very disappointed lately, so this disruptive RIA technology will finally get Microsoft relevant again!! Yeah!!<br><br>Thanks for sharing the conf. call 800# and for live blogging this call and all the news streaming in by the second! very exciting!<br><br>This new open service-oriented platform is much needed, very promising news for open collaborative apps / sharing.<br><br>"The Mesh" is going to be BIG!!<br><br>"Stay off my lawn!", by Ozzie is funny!<br><br>Susan M. Beebe, PMP, MCSE<br>@smbeebe</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704051">\
	 <div id="dsq-comment-header-9704051" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704051" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704051">Steve</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704051" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704051" class="dsq-comment-message">I agree, at first look this looks like something related to Groove. I always liked the underlying Groove platform although the top layer ruined it. This could end up being a great transport for applications that are usually but not always online. Really hoping they deliver on the Mac and device support!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704052">\
	 <div id="dsq-comment-header-9704052" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704052" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704052" href="http://www.sumo.tv/" target="_blank" rel="nofollow">Shakir Razak</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704052" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704052" class="dsq-comment-message">Hi,<br><br><br>Just remembered that bid for Yahoo…..<br><br>Some prescient thought: <a href="http://www.charlesarthur.com/b....._popup=989" rel="nofollow">http://www.charlesarthur.com/b....._popup=989</a><br><br><br>What\'s the Bet this was timed to steam-roller the Bid!<br><br><br>This is like his previous work, but If Ray Ozzy wants to forge Microsoft ahead into the 21st century, he’s going to have to do a lot more than what companies like Sproqit, and web-synchronisers have been doing for a very long time.<br><br>They have an absolute end-to-end solution/platform (strategy/plan) here, but it will only succeed with the network effect, and why should people need to depend on any single company in the modern "open" world.<br><br><br>Yours kindly,<br><br><br>Shakir Razak</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704053">\
	 <div id="dsq-comment-header-9704053" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704053" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704053" href="http://frem.wordpress.com/" target="_blank" rel="nofollow">James</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704053" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704053" class="dsq-comment-message">I need to access my data on three different operating systems on different computers at my university on a fairly frequent basis. Lack of portability means epic fail; I\'ll stick with web apps and WebDAV shares for now, thanks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704013">\
	 <div id="dsq-comment-header-9704013" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704013" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704013" href="http://www.sumo.tv/" target="_blank" rel="nofollow">Shakir Razak</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704013" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704013" class="dsq-comment-message">Hi,<br><br>Sorry, Right link:<br><br><a href="http://www.charlesarthur.com/blog/wp-trackback.php?p=989" rel="nofollow">http://www.charlesarthur.com/blog/wp-trackback....</a><br><br>Kind regards,<br><br><br>Shakir Razak</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704011">\
	 <div id="dsq-comment-header-9704011" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704011" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704011">Mark Ashton</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704011" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704011" class="dsq-comment-message">I find it interting and humerous that most people here and a lot of the pundits totally don\'t get what Mesh is about. It is NOT about moving the platform to the Web - at least not entirely. It\'s about having the best of both world\'s: the power and flexibility of applications running on your PC or Mac or phone or xbox or set-top box or any other device; and the sharing/connectivity and ubiquity of the Web. If this works you\'ll have your applications roam with you and adapt to the device you\'re using. If you\'re on a dumb terminal (aka a Web browser) you\'ll get a "pure" Web experience (AJAX! WOW!). If you\'re on a PC you\'ll get a full-fledged PC (or Mac) application. If you\'re using an XBOX or PS3 you\'ll get an appliation appropriate for that device. Your data moves with you from device to device but you\'re explicitly NOT moving to what I think is the most dreaded situation - everything on the Web and a lame world of AJAX and Flash and Silverlight.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704027">\
	 <div id="dsq-comment-header-9704027" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704027" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704027" href="http://www.sumo.tv/" target="_blank" rel="nofollow">Shakir Razak</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704027" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704027" class="dsq-comment-message">Hi,<br><br>@Mark Ashton,<br><br><br>So something like Bill Gates house then!<br><br><br><br>Kind regards,<br><br><br>Shakir Razak</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704018">\
	 <div id="dsq-comment-header-9704018" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704018" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704018" href="http://www.tomstechblog.com/" target="_blank" rel="nofollow">Tom</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704018" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704018" class="dsq-comment-message">@Mark Ashton - If the Developer is willing to write a gazillion different applications for each different platform.  Otherwise you\'ll roam alone.<br><br>I think those unimpressed (me for one) are getting it, we just don\'t think its that special.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704019">\
	 <div id="dsq-comment-header-9704019" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704019" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704019">Mark Ashton</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704019" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704019" class="dsq-comment-message">Shakir - not sure I follow. I suppose Bill Gates has a lot more devices in his mesh :) but most people who are on the Internet have a few; their work PC; their home PC (or two); and their phone. Many of us have more devices. Some companies want all of those devices to be very expensive dumb terminals for Web apps. I\'d rather actually use them for something better.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704025">\
	 <div id="dsq-comment-header-9704025" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704025" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704025" href="http://www.prapta.com/" target="_blank" rel="nofollow">Jason L</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704025" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704025" class="dsq-comment-message">Thanks for the update!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704026">\
	 <div id="dsq-comment-header-9704026" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704026" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704026" href="http://www.sumo.tv/" target="_blank" rel="nofollow">Shakir Razak</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704026" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704026" class="dsq-comment-message">HI,<br><br>Not just that Mark, I was flippantly referring to the hype about Bill Gates\' house having intelligence that allowed the electronics (though probably not computing at the time) to follow him around from lighting to media.<br><br><br>Kind regards,<br><br><br>Shakir Razak</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704028">\
	 <div id="dsq-comment-header-9704028" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704028" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704028">Tom</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704028" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704028" class="dsq-comment-message">wow... on one hand we have big companies like Microsoft trying to sell us the THE next big IT thing... eg. Mesh. On the other hand we have people like Walt Mossberg telling us that people don\'t get the most basic things on their PCs sorted... eg. world wide confusion around what is broadband and what is not, on-demand video via their PC etc.<br><br>Is it only me or is the reality of technology that (with some minor exceptions) tech companies can\'t even get the most basic IT problems sorted as far consumers are concerned.<br><br>For another example, after having been promised the mobile web for the better part of 10 years it took a little company in Cupertino to make it happen. Just look at Googles\' mobile usage stats. Was it 95% of mobile traffic coming from iPhones when they had only sold some 5 million phones? (compared to 120 million sold by it\'s competitors during the same period)<br><br>While I welcome Microsoft trying to think different for a change rather than copying everyone else baldy, I have the bad feeling that this is solely an attempt to protect their Windows/ Office cash cow.<br><br>Yes we might see a mobile client... but it will only be for the Windows Mobile platform... maybe Symbian. That\'s it. Mac support? Sure maybe in a year or two but don\'t expect a full feature set. Linux? I thought only hackers use that. I know I sound cynical but Microsoft\'s track record to this day hasn\'t been all that great in this arena. Anyone remember the promise of a Silverlight client for Mobile Platforms? I wonder what happened to that. Oh right, Microsoft is licensing Flash Lite.<br><br>Microsoft\'s biggest problem seems to be its\' inherent dependents on Windows as a revenue stream. Until they loose that you won\'t see truly innovative products that will change the world without locking you into their technology.<br><br>Take a look at Procter and Gamble. They are about to loose the majority of their cash cow medical patents. The same goes for Pfizer Inc. . P&amp;G decided to invite outside companies as partners in order to help them bring their ideas to market while sharing revenue. Pfizer so far hasn\'t done anything to convince the market it will survive in it\'s current form past 2012.<br><br>In the world of Microsoft this would Microsoft approaching Yahoo in order to make them a parter rather than aggressively perusing a take over.<br><br>All big things start small. A simple idea to deliver a simple solution: Google Search, Google Maps, the iPhone, Voice Telephone (the landline type), the household lightbulb and dare I say MS-DOS+MS-Basic to put a PC on every desk. They all changed the world.<br><br>Do you feel Mesh falls into the same category?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704032">\
	 <div id="dsq-comment-header-9704032" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704032" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704032">Kris Fuehr</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704032" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704032" class="dsq-comment-message">Groovy.  I can\'t wait to see if Ray has the wherewithall to start cutting some of the MS closetful of assets and let the winners like this shine through.  What of Sharepoint integration, Skydrive, Groove, how they fit?  Great to see MS play their integration card more seriously these days.  Anxious to see it unfold, I\'m signing up.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704031">\
	 <div id="dsq-comment-header-9704031" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704031" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704031">scott</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704031" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704031" class="dsq-comment-message">What problem is the Mesh trying to solve? Mary Jo mentions something about it being good for sharing photos. It looks to me to be a re-packaging of .Net. Microsoft keeps wanting to redefine the web using kind of similar terms. They are running out of options.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704033">\
	 <div id="dsq-comment-header-9704033" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704033" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704033">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704033" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704033" class="dsq-comment-message"><i>I think those unimpressed (me for one) are getting it, we just don’t think its that special.</i><br><br>Me for two.<br><br>Or that they can deliver, or that the end-result will even be close to half of what promised, half features stripped to get it to ship, like they did with the "Viridian" hypervisor.<br><br>I don\'t get it, what demand is there for cloud sync? They\'d be better off preaching the virtualization gospels.<br><br>Windows development is truly broken, I think it will be a slow slide into nothing, a decade-long freefall.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704029">\
	 <div id="dsq-comment-header-9704029" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704029" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704029" href="http://chrisbrogan.com/" target="_blank" rel="nofollow">Chris Brogan...</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704029" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704029" class="dsq-comment-message">First, great post. Truly good stuff. When I read your "get off my lawn" teaser earlier, I was eager to see the reveal, but I\'ve been at the New Comm Forum thing all day without the real web (re the mobile web? It\'s still not *really* here).<br><br>As a very long time Mac guy who still appreciates what MSFT is doing in some arenas, I\'m really excited about this as a possibility. I want the borders to be open, but that might (should?) come later, because if I were Ozzie, I\'d want my house in order before inviting over the neighbors.<br><br>I support the learning experience and what this will teach others who might choose to implement something based on what Mesh teaches the world.<br><br>At moments like this, I wonder if Ozzie is speaking from him position, or from his passion. If B, this is something amazing. And I have no way to judge or know.<br><br>Thanks, Robert.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704010">\
	 <div id="dsq-comment-header-9704010" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704010" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704010">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704010" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704010" class="dsq-comment-message">Mary Jo Foleyish Addendum Infobits (Windows Device and Mobile Sync Social-Graph Platform Professional Plus Mesh Ultimate Edition 2008)<br><br>1. Definition - "Mesh", as vague as .Net was, bet they start slapping "Mesh For Sure" on every product, without much thought.<br><br>2. Codenames? Irrelevant insider-baseball.<br><br>3. Team(s) 100 or 400? And more (I\'ll bet) to \'sync\' and \'sell\' Mesh to other Microsoft teams. Dogfood time.<br><br>4. Buzswords. Oh oh, overload city, Web 2.0 Microsoft-style, and "social graph", is so horrid that it deserves it\'s own wing in the Museum of Vaporware.<br><br>5. Guts. Pretty-Powerpointish Longhornian nifty architectural diagrams. Any resemblance to actual reality is purely consequential. Wishing disgrams.<br><br>6. Sync or collaboration and more or not or less or more or something. Whatever we can toss into the casserole, everyone into the Windows ecosystem pool, please...pretty please. Trust us.<br><br>7. Silverlight. Open to all, but some more special than others, entrance without tiokets, always getting backstage passes.<br><br>8. Live Mesh. Control your Mesh and social graphs remotely. Feed and water the Mesh, Tamagotchi Mesh. Unified Collaborative Utopia.<br><br>9. Consumer (a sector we always fail at), well Consumer until we ever figure out how to drive this SaaS thing.<br><br>10. Timing. Pre-PDC hype, fluff up Windows 7. Ray has to showcase SOMETHING sometime, might as well be now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704012">\
	 <div id="dsq-comment-header-9704012" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704012" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704012" href="http://www.iarfhlaith.com/" target="_blank" rel="nofollow">Iarfhlaith Kelly</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704012" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704012" class="dsq-comment-message">I wonder what this will mean for developers of existing web applications? Will they be forced to learn and adopt yet another online API? Will it be a mistake not to?<br><br>It\'ll be interesting to see just how much access will be given to developers. For instance, will it be possible to integrate the online storage facility with a user account on another web app?<br><br>I want all my data together in one place. Lots of web applications provide some kind of basic document storage. Wouldn\'t it be great if this was centralised across multiple accounts on multiple tools?<br><br>Sounds like the MOE could provide this, but it\'ll depend on individual developers to adopt and integrate with it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704054">\
	 <div id="dsq-comment-header-9704054" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704054" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704054">Toph</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704054" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704054" class="dsq-comment-message">I wonder if this\'ll be tied more deeply into Windows 7--or if the antitrust regulators of the world would even let MS do that. But what I really want is to be able to sit down at any web-connected PC and log on using my Windows Live ID. 100% in the cloud, when I need it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704055">\
	 <div id="dsq-comment-header-9704055" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704055" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704055">Steven</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704055" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704055" class="dsq-comment-message">I think I sort of understand the concept, and it sounds very innovative.<br><br>But how about privacy? What does Microsoft know about you and your system if you want to use Mesh?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704056">\
	 <div id="dsq-comment-header-9704056" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704056" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704056" href="http://techleaders20.blogspot.com/" target="_blank" rel="nofollow">Alex Hammer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704056" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704056" class="dsq-comment-message">Great post. You really tied it together in a way that details the major areas of functionality, the potentials of what Mesh can do and what it means, etc.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704057">\
	 <div id="dsq-comment-header-9704057" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704057" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704057">Jason Bogovich</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704057" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704057" class="dsq-comment-message">Robert, great reporting man, I love it when you get excited about technology, this framework looks really interesting, us on the east coast are just revving up to the news.<br><br>Thanks for the entertaining twittering last night too, I can usually tell how important thing are just by how excited you get. Sometimes I wonder if you ever wonder if Microsoft would be doing differently today had you stayed with them? One of Microsofts biggest mistakes was not paying you even half of what you should have been making.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704058">\
	 <div id="dsq-comment-header-9704058" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704058" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704058" href="http://www.ratdiary.com/" target="_blank" rel="nofollow">Sprague Dawley</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704058" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704058" class="dsq-comment-message">@38, @43 Here, here! A great post from Robert -- excellent reporting and links to more material. He\'s a Techmeme all by himself!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704059">\
	 <div id="dsq-comment-header-9704059" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704059" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704059">Freeman</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704059" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704059" class="dsq-comment-message">"Microsoft is going to keep Windows relevant and keep us all from sliding into a Web that doesn’t rely much on the underlying operating system."<br><br>Yeah, what a horror show that would be.  Reliance on end-point devices under the control of a single monopolistic company is the ideal in any network.  I, for one, miss the days when one company controlled all the devices on the telephone network and charged an extra monthly rental fee for each device connected to the network in addition to the network usage fees, allowing me to pay $600 each over a ten year period for the use of their telephone receivers in my home (in 1970\'s dollars).<br><br>Things sure changed for the worse when we slid into a telephone network that didn\'t rely much on one company\'s control of the end-point devices.  The commoners could then buy their own telephone receivers for 10 or 20 bucks and be done paying for them, robbing the telephone company of it\'s rightfully-earned monopoly rents on those devices.  Next thing you knew, they were connecting stuff the network was never designed for, like modems, and that entire Web that you warn us about sliding into without the protection of reliance on the "underlying operating system" (by which you must be referring to the OS on the end-point devices) was allowed to grow out of that.  What a nightmare it\'s all become.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704060">\
	 <div id="dsq-comment-header-9704060" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704060" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704060">Joe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704060" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704060" class="dsq-comment-message">You\'re damed if you do..damned if you don\'t.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704061">\
	 <div id="dsq-comment-header-9704061" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704061" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704061" href="http://blogs.vinuth.com/la-gubya" target="_blank" rel="nofollow">Gubbi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704061" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704061" class="dsq-comment-message">I\'m still trying to grasp how relevant Mesh is for the browser only future? I have most of the services on cloud now and it doesn\'t really matter where I\'m accessing those services from. Many things like feeds, music, even app development to some extent have become machine independent and collaboration is one of the core principles. About information being pushed and pulled, isn\'t that what is happening with friendfeed and twitter? I think Mesh provides an alternative route to the browser only world.... Not sure if it is worth pursuing.<br><br><br>Will watch out for more perspectives though.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704062">\
	 <div id="dsq-comment-header-9704062" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704062" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704062" href="http://blogs.vinuth.com/la-gubya" target="_blank" rel="nofollow">Gubbi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704062" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704062" class="dsq-comment-message">And how attractive is the 5GB free usage? Would anyone start paying for more? cuz 5 GB seems too little for anyone in the non-"browser-only-world".</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704063">\
	 <div id="dsq-comment-header-9704063" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704063" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704063">Mark Ashton</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704063" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704063" class="dsq-comment-message">Gubbi - if you want to live in a browser only world you would have loved the days of the IBM Mainframe or mini-computers - its\' the same thing. All of the data and processing happening on centralized machines, connecting up via a dumb terminal. The Web browser is the "modern" equivalent of a dumb terminal. We can do better. Mesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704064">\
	 <div id="dsq-comment-header-9704064" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704064" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704064">Matt</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704064" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704064" class="dsq-comment-message">Does this overlap at all with the home server?  If I can store all my photos, docs, etc. in the cloud, and still get remote access...why do I need home server?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704065">\
	 <div id="dsq-comment-header-9704065" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704065" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704065">claymeadow</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704065" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704065" class="dsq-comment-message">live mesh sounds like the right idea, although joe-jane six packer may give it a head scratch, head tilt, and then yawn after about 2 seconds, isn\'t that how it always is anyways, since it\'s complicated.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704066">\
	 <div id="dsq-comment-header-9704066" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704066" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704066">SucksToBeMS</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704066" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704066" class="dsq-comment-message">Developers will get excited, then nobody will use it.<br>Apple will come and make it usable, beautiful and portable.<br>It is not the idea that counts, it\'s the implementation.<br>And we all know M$ always sucks at that!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704067">\
	 <div id="dsq-comment-header-9704067" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704067" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704067" href="http://blogs.vinuth.com/la-gubya" target="_blank" rel="nofollow">Gubbi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704067" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704067" class="dsq-comment-message">Tell me the reasons for someone wanting to run apps locally and how Mesh helps there.<br><br>A browser only world doesn\'t have to reduce local machines to thin client. Browser can be the single place when on-the-cloud access and collaboration is required. Here users are free to store and collaborate anywhere and not put everything in a single space. Also most services are free now, what is free storage of 5GB worth?<br><br>So I don\'t see it providing better platform for online services like flickr, or youtube for content sharing. Nor is it better for collaboration than GTalk, Google docs, Zoho, twitter, etc.,<br><br>Tell me how Mesh will revolutionize these services?<br><br>There is another point which I don\'t see mentioned. Will I have to install Mesh enabled apps separately on all my client devices? Of course I\'ll have to. So, whats so better about it?<br><br>I still don\'t get it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704068">\
	 <div id="dsq-comment-header-9704068" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704068" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704068">met</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704068" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704068" class="dsq-comment-message">I am afraid "suckstobems" is right. Microsoft has the ideas. But its Apple and others who get the engineering right. I think its partly because the others start out with their ideas on a smaller scale.<br>The demo on <a href="http://on10.net" rel="nofollow">on10.net</a> showed the remote desktop to be slow and they said that it will be slower on the web interface. Its small things like these which will put off an every day user.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704069">\
	 <div id="dsq-comment-header-9704069" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704069" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704069">Toph</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704069" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704069" class="dsq-comment-message">I disagree with anyone saying Mesh "bets against the cloud." I think it\'s as much about bringing the web outside of the browser as anything else. Apps like Office still crush anything being done in-browser in almost every category but connectedness (and maybe simplicity). I see no reason why being "connected" (or even "in the cloud") must mean staying inside the browser.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704070">\
	 <div id="dsq-comment-header-9704070" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704070" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704070" href="http://blog.macb.net" target="_blank" rel="nofollow">macbeach</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704070" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704070" class="dsq-comment-message">35 and 43 hit most of the high points.<br><br>Ironic this is, only a day after MS announced  the discontinuance of DRM music validation.<br><br>MS has obviously gotten sensitive to the public perception that they are not open enough, don\'t play well with others, etc.<br><br>However so far, their response has only been empty promises.  Yes, this will work with OS X and Linux (some day) just as Silverlight will.  Only when reporters ask for status on those efforts MS makes it clear that they are being handled by third parties with whom MS developers have no apparent contact.<br><br>I\'ve asked this time and time again with respect to such promises:  Wouldn\'t it be easier to build compatibility in from the very beginning?  If you are really serious about providing such compatibility why would you go back an add it later after writing millions of lines of code?  Why would you leave such efforts up to unpaid third parties? (thinking .net and mono specifically here).  These claims don\'t really pass any kind of smell test.<br><br>Actions speak louder than words Microsoft, and so far there is just no "there" there.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704071">\
	 <div id="dsq-comment-header-9704071" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704071" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704071">eduardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704071" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704071" class="dsq-comment-message">Mark Ashton: "if you want to live in a browser only world you would have loved the days of the IBM Mainframe or mini-computers - its’ the same thing. All of the data and processing happening on centralized machines, connecting up via a dumb terminal. The Web browser is the “modern” equivalent of a dumb terminal".<br><br>No, because in the old days you depended on IT to write or purchase your apps, but with the Web you have countless individuals and organizations putting them up for free. If you are unaware of this difference and all the advantages it brings, then you are completely, and I do mean completely, out of touch with reality.<br><br>"Mesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN."<br><br>Google Gears already does this.<br>`<br>Would someone please explain again what Mesh is supposed to do that can\'t be done already, or with a few additions to what Web 2.0 is already doing?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704072">\
	 <div id="dsq-comment-header-9704072" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704072" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704072">Mr_Simple</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704072" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704072" class="dsq-comment-message">Ohhh my head is spinning.<br><br>Let\'s review this all again in 3 years to see if it\'s the real deal, or just another API to learn..<br><br>Seriously, do we need another layer of complexity or will Google\'s App Engine or Amazon\'s EC2 / S3 be fine?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703999">\
	 <div id="dsq-comment-header-9703999" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703999" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703999">Ken Nicholson</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703999" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703999" class="dsq-comment-message">It would be nice if they solved the problem of synching one\'s personal media.  If I purchase a downloaded movie, it would be nice to have it appear on all my computing devices.  But this is going to be tricky as I think MCE\'s TV recording files are encrypted for playback on a particular machine and not portable to other machines.  Ideally your downloads would be tied to your Live Mesh identity and then any new device added to your mesh would automatically get your content library.<br><br>Then again, if a user has a 1TB library of HD Gilligan\'s Island episodes, they don\'t necessarily want all of it synched everywhere.  And portable devices don\'t need to carry around Christmas music in the summer, so there needs to be an AI-based priority and rules system that helps sync only the content the user wants.<br><br>There are a lot of questions about sharing Live Mesh content that will arise.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704001">\
	 <div id="dsq-comment-header-9704001" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704001" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704001" href="http://slinfodex.com/" target="_blank" rel="nofollow">Yaintgo Nagettit</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704001" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704001" class="dsq-comment-message">Wow!!!  Something new and ionniovative from MicroShaft, Inc...  Oh, wait... My bad, it\'s just another rehash of stuff that other people have done before them - typical of Microcrash\'s modus operandi - see what everyone else has done and implement a half-assed version of it in their unsecure operating system.  I honestly can\'t wait to see how the script kiddies and spammers exploit the hell out of this!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704005">\
	 <div id="dsq-comment-header-9704005" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704005" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704005">Jon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704005" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704005" class="dsq-comment-message">&gt; Firefox support? Yes! Linux support? What’s that?<br><br>That is why I won\'t be bothering. Seriously, you have to *try* not to support Linux. Telling me how many standards are supported is a waste of time unless they plug seamlessly into my standards compliant system (Kubuntu).<br><br>There are 13 mentions of Windows in the article and comments, 6 of Linux, 4 of apple. MS, call me when you\'re *really* ready to talk (to my desktop).<br><br>Not to rain on Mr Ozzies parade at all. Truly cross platform, this would be great stuff!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704009">\
	 <div id="dsq-comment-header-9704009" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704009" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704009" href="http://blogs.vinuth.com/la-gubya" target="_blank" rel="nofollow">Gubbi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704009" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704009" class="dsq-comment-message">Toph: <i>I think it’s as much about bringing the web outside of the browser as anything else.</i><br><br>Exactly. And that is why it doesn\'t make much sense. Why would I want to stay within browser? Because I don\'t want to install an application for each and every web service on each of my devices. I may even not have those applications ported to all my devices in their initial phases. I don\'t want to bother with upgrading to latest versions. The only problem Mesh solves is synchronizing my preferences. With this solved, it still sucks to move out of the browser.<br><br>Browser is not just another application, its a virtual machine on top of the actual machine.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704007">\
	 <div id="dsq-comment-header-9704007" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704007" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704007">Dirk Stevens</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704007" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704007" class="dsq-comment-message">Robert, do your job and be critical.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704008">\
	 <div id="dsq-comment-header-9704008" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704008" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704008">Frank Daley</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704008" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704008" class="dsq-comment-message">This is awesome. I haven\'t felt this excited since the day Microsoft launched PlaysForSure.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704006">\
	 <div id="dsq-comment-header-9704006" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704006" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704006">eduardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704006" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704006" class="dsq-comment-message">Mark Ashton: "Gubbi - if you want to live in a browser only world you would have loved the days of the IBM Mainframe or mini-computers - its’ the same thing. All of the data and processing happening on centralized machines, connecting up via a dumb terminal. The Web browser is the “modern” equivalent of a dumb terminal."<br><br>No, in the old days of the mainframe and mini-computer, the IT department wrote your applications or purchased them, but with the web you have an endless number of individuals and organizations producing applications you can use for free. If you don\'t understand that difference and why it is so beneficial, then you are really out of touch with reality.<br><br><br>"Mesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN."<br><br>Google Gears does that.<br><br>Perhaps you could be so kind as to explain again what Microsoft Mesh is supposed to do that can\'t already be done with Web 2.0, or that could with some additions?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704004">\
	 <div id="dsq-comment-header-9704004" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704004" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704004">Steve</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704004" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704004" class="dsq-comment-message">I didn\'t see any mention of you crying after seeing this.  Can\'t be all that great if it didnt make you cry</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704003">\
	 <div id="dsq-comment-header-9704003" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704003" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704003">Toph</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704003" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704003" class="dsq-comment-message">Gubbi--<br><br>Hm. You make some good points--the browser has its advantages. And yes, it\'s a little annoying having to download the client to facilitate all this. But if it\'s truly fleshed out as a platform, that should be pretty insignificant in the long run. Sometimes the power and flexibility of offline apps outweights the convenience of doing it in-browser.<br><br>So the client is a relatively small, one-time cost. Now they just have to make it worthwhile.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704002">\
	 <div id="dsq-comment-header-9704002" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704002" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704002" href="http://www.changeforge.com/" target="_blank" rel="nofollow">Ken Stewart</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704002" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704002" class="dsq-comment-message">Robert, great links. I\'m looking forward to reading through this over the next few days, and probably weeks to come.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703996">\
	 <div id="dsq-comment-header-9703996" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703996" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703996">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703996" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703996" class="dsq-comment-message">Well, 24 hours later, and the collective response (minus the MVP sugary Fun-Dips) can be summed up thusly: "Huh?"<br><br>Vague, mushy-lockbox vaporware, all without a sexy marketing hook. When you are pitching something Consumerish, and even developers are having a hard time wrapping it up, you know it\'s doomed (well, the mere fact that Scoble is excited, is enough of a short-sell signal to me, but your mileage may vary).<br><br>Over-hyped spin yet under a Sinofskyish lock-and-key, contradictions can be best-friends.<br><br>WhydoIfeellikewehavebeenherebefore? Failstorm, Part Deuce, hey, great idea, Mesh needs a "Passport" Digital ID system. Only thing missing is trotting out Explainer-in-Chief Charles Fitzgerald to face the press and industry machine-gun fire.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703995">\
	 <div id="dsq-comment-header-9703995" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703995" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703995">Tom</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703995" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703995" class="dsq-comment-message">ok, so now I have had a very good long hard look at this Mesh thing.<br><br>My conclusion is that unless they make it easier and more transparent to use it will remain a technology only used by the 10% people that make up the Geek World... people like Scoble etc.<br><br>I think the real problem with most things Microsoft makes these days is that they look like they where build by engineers for engineers. The Channel 10 presentation is the perfect example. I seriously doubt that Microsoft in it\'s current way of doing things will be able to make this work easily for the common punter.<br><br>Apple has tried something similar on a much much smaller scale with their integration of .Mac and Leopard. It\'s easy to use and seamless in that environment yet not many people really seem to make heavy use of it.<br><br>I think the bottom line is this is another attempt by Microsoft to cling to their Windows dominance, to make it relevant in a Web only world. I doubt there will be much support for devices or Operating systems not made by Microsoft. It also don\'t think this will be very useful to people without two way broadband connection and I don\'t think this will be easy to use...<br><br>... in a nutshell this will be a real uphill battle.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703994">\
	 <div id="dsq-comment-header-9703994" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703994" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703994">ilde</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703994" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703994" class="dsq-comment-message">It comes from microsoft? Fuchi. No, thanks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704030">\
	 <div id="dsq-comment-header-9704030" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704030" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9704030" href="http://whijo.net/" target="_blank" rel="nofollow">Brad</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704030" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704030" class="dsq-comment-message">There is a really good youtube video that ties this into their strategy quite nicely:<br><br><a href="http://www.youtube.com/watch?v=eBGIQ7ZuuiU" rel="nofollow">http://www.youtube.com/watch?v=eBGIQ7ZuuiU</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703997">\
	 <div id="dsq-comment-header-9703997" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703997" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703997">Epic</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703997" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703997" class="dsq-comment-message">EPIC FAILURE!!!<br><br>EPIC FAILURE!!!<br><br>EPIC FAILURE!!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703998">\
	 <div id="dsq-comment-header-9703998" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703998" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703998">ValentineS</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703998" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703998" class="dsq-comment-message">This appears to be stuff we already have from other companies, but in an alpha stage, not as pleasant, and kind of mushed together in some type of anamorphic glob.<br><br>An I agree with so many others, w/o universal support, there is no way any of it is making it into any of my networks.  I run Multiple flavors of MS Windows and Linux, and everything we do also has to play well with Macs.  Someone give me a nudge when this works with all three.<br>Until then, I\'ll continue to work in the real world w/o rose colored glasses.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704000">\
	 <div id="dsq-comment-header-9704000" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704000" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704000">Karen</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704000" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704000" class="dsq-comment-message">@ Christopher Coulter.<br>You\'re adding ZERO to the discussion.  The fact is that no matter what Microsoft did, you\'d belittle it and bash it, and everyone knows that.  That\'s why your "input" is so tiresome, because it\'s based on your hatred of Microsoft and nothing else.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704020">\
	 <div id="dsq-comment-header-9704020" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704020" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704020">Toph</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704020" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704020" class="dsq-comment-message">Christopher Coulter -- vaporware? I\'m using it right now, and it\'s going great.<br><br>Tom - cling to their Windows dominance? What about the "Mac and mobile versions coming soon" part? I\'d say it\'s more about using all the work done on Windows in a more modern, "connected" way, instead of throwing it away just because it\'s not in the browser.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704023">\
	 <div id="dsq-comment-header-9704023" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704023" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704023">Mark Ashton</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704023" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704023" class="dsq-comment-message">Eduardo (and others) tried to make the point that Google Gears does what Mesh does.<br><br>“Mesh is about letting you use browser-based apps and accessing all your data when you HAVE to but also giving you the choice or running your apps locally when you CAN.”<br><br>"Google Gears does that."<br><br>Not so much. Google gears sort of kind of makes Web-based apps work when the user us offline. That\'s nice...but you\'re still stuck using a Web-based application. MESH is about having your apps and data move with you from device to device and up onto the Web when you want your data there. MESH means that you can use local/native applications when you\'re using a PC/Mac or other device that supports the application and only forces you into using "native Web" apps when you have to or want to. Big difference.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704022">\
	 <div id="dsq-comment-header-9704022" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704022" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704022">Mark Ashton</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704022" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704022" class="dsq-comment-message">Chris Coulter said..<br><br>"I don’t get it, what demand is there for cloud sync? They’d be better off preaching the virtualization gospels.<br><br>Windows development is truly broken, I think it will be a slow slide into nothing, a decade-long freefall."<br><br>I disagree with your premise that there\'s no demand for cloud sync. I want it and I see dozens of scenarios where it would solve difficult programming/computing problems. But one possible reason you and others might think there\'s no demand for cloud sync is that you\'re already stuck in the world of using Web-based apps for most of your computing. If you\'re doing that, who cares right? Your data is already on the Web. But then you\'re living in a world of AJAX/Flash/Flex that turns your PC or Mac or iPhone into an expensive dumb terminal. Don\'t you want to use your machine for what it was designed for? Hardware acceleration? Access to the local file system? Faster/more interactive applications?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704021">\
	 <div id="dsq-comment-header-9704021" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704021" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704021">Mark Ashton</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704021" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704021" class="dsq-comment-message">Hit send to soon on previous. The old canard of Windows development being broken and in a long slide to death has been around for a while. If you\'re talking about Win32 then you\'re mostly wrong but partly right. Joe developer is not building a lot of Win32 apps using VB anymore. Those people have turned into scripters/HTML jockeys because it\'s so much easier and they\'re riding the rush to the lowest common denominator in app design and performance. But the biggest part of the software industry as a whole is Win32 - both on the client and the server. Look at all of Adobe\'s software. Quicken. SAP. Oracle for Windows. All the big line of business applications are built using Win32/C++.<br><br>Then a large part of the remaining developers are using .NET on Windows. A large chunk of home grown line of busines software is writting using .NET. Although Silverlight brings part of .NET to Windows and eventually Linux, .NET is fundamentally a new programming model/API for building Windows apps.<br><br>If that\'s a long slide into oblivion then I\'d geuss that most companies would take it. ;)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704024">\
	 <div id="dsq-comment-header-9704024" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704024" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704024">Toph</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704024" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704024" class="dsq-comment-message">Mark--"Don’t you want to use your machine for what it was designed for? Hardware acceleration? Access to the local file system? Faster/more interactive applications?"<br><br>Yes, please. :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703990">\
	 <div id="dsq-comment-header-9703990" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703990" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703990">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703990" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703990" class="dsq-comment-message"><i>you’re already stuck in the world of using Web-based apps</i><br><br>Yeah, like Microsoft \'Albany\', Microsoft Exchange Online and Microsoft SharePoint Online, Dynamics CRM Online. Pity that.<br><br>But eh? The "web apps" would be news to me. Web 2.0 crashy clunky mash-ups, that\'s the Bay Area and Scoble and Co. Most of my "computing" is done in front of Avid "terminals", hardly web, and not even close to "desktop". So I am already beyond your boxed-in character-scenario definitions. But a philosophical argument over the failing merits of markup as a platform, doesn\'t automatically mean there is any cloud-sync demand, let alone a vaguely-defined non-shipping raw-concept consumer-targeted marketing-send-up. Now Server underutilization, off the charts.<br><br>And funny, I get lots of "acceleration" on OLD hardware, with "faster/more interactive" applications, with "local file system access", after installing Fedora. Thanks for the tip.<br><br>The Win32 to .Net migration is a microview, look at the macro, i.e. where is .NET in comparison to the WHOLE market itself.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703991">\
	 <div id="dsq-comment-header-9703991" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703991" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703991">Mark Ashton</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703991" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703991" class="dsq-comment-message">Coulter, you don\'t get it. And your holier than thou BS is tiresome. What does Exchange Online have to do with Web apps? Nothing. Exchange is a native Windows app, written in C++, delivered over the wire, mostly to users who will be using Outlook, not OWA. You may spend most of your time in front of Avid "terminals" doesn\'t really matter much does it? There are about 5000 of you. Go have fun in your dark office.<br><br>I certainly haven\'t argued that "markup as a platform\' doesn\'t have merit. It does, for delivering a half decent experience of delivernig data to my browser and a bit of interactivity. But if I want to do anything interesting, markup doesn\'t cut it.<br><br>If you\'re referring to MESH as the "vaguely-defined non-shipping raw-concept consumer-targeted marketing-send-up" then (1) you\'re way overly dependent on dashes and (2) lots of good ideas weren\'t immediately understood by the average Chris...I mean Joe.<br><br>The fact that you get "lots of acceleration on OLD hardware" is just fine and dandy. I made no refernce to new or old hardware. I just like to use the hardware I have for something other than running a Web browser.<br><br>Lastly, what the hell does your last paragraph even mean? Why don\'t you explain the "macroview" and compare .NET to the whole market. Go ahead. I\'m waiting.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703992">\
	 <div id="dsq-comment-header-9703992" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703992" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703992">redfish</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703992" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703992" class="dsq-comment-message">"Developers will get excited, then nobody will use it.<br>Apple will come and make it usable, beautiful and portable.<br>It is not the idea that counts, it’s the implementation.<br>And we all know M$ always sucks at that!"<br><br>Because of your last sentence I\'m not sure whether you\'re facetious or not.. but I think Media Center is more usable, beautiful and portable than Front Row. The Zune UI is also nicer than the iPod UI.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9703993">\
	 <div id="dsq-comment-header-9703993" class="dsq-comment-header">\
	 <cite id="dsq-cite-9703993" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9703993">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9703993" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9703993" class="dsq-comment-message"><i>And your holier than thou BS is tiresome.</i><br><br>Hey, I agree. Tech rot bores even me. But if I had a blog, then my "holier than thou BS" would be a valuable conversation? Heck, every blogger slash pundit out there operates on "holier than thou BS", and that\'s the very fuel Scobleizer runs on, it\'s just the Bay-Areaish "holier than thou BS". My "holier than thou BS" runs more \'will it play in Peoriaish\'. Take as will.<br><br><i>you’re way overly dependent on dashes</i><br><br>Beyond guilty as charged, it works in Final Drafty dialogue-mode however. :)<br><br>But I wouldn\'t be so quick to knock those Average Joe\'s, as they are CONSUMERS, the Mesh target market. But the classic "you don\'t get it" is circular logic at it\'s best, like a conspiracy theory where lack of evidence only proves it further, "you don\'t get it" is a debate killer. And those "good ideas", are little more than wishful thinking at this point. Possible, but not yet proven. And "good ideas" are nothing without "good implementations".<br><br><i>Why don’t you explain the “macroview” and compare .NET to the whole market.</i><br><br>You expecting a book? Not taking that bait. It\'s your argument, just saying comparing Win32/.Net ISP markets, says nothing about .NET Framework penetration or the scope of Java Enterprise developments etc. etc.<br><br><i>doesn’t really matter much does it?</i><br><br>Considering that without those 5,000 you wouldn\'t have half of Hollywood and hardly any of Burbank, I\'d say it matters. ;) Hollywood does have a lot of Final Cutters, but Burbank is almost all (still) Avid. And in true blogger-elitist-dogma, it\'s not the SIZE of the audience, rather the INFLUENCE.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9704073">\
	 <div id="dsq-comment-header-9704073" class="dsq-comment-header">\
	 <cite id="dsq-cite-9704073" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9704073">Peter Parker</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9704073" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9704073" class="dsq-comment-message">Lets see the top 4 P2P applications of all times are <a href="http://www.faroo.com" rel="nofollow">Faroo P2P Search</a>, <a href="http://mermaid.metaaso.com" rel="nofollow">MetaASO Mermaid Worldwide Multimedia Broadcast Systems</a>, <a href="http://www.emule.com" rel="nofollow">Emule P2P file sharing</a>, <a href="http://www.azureus.com" rel="nofollow"> Azureus BitTorrent P2P File Sharing</a><br><br>None of these applications can be developed using the Live Mesh. Live Mesh is not open enough to allow the Open Source adopters to hook onto it. It is and will always be a closed source propeitary solution which will work only to further Microsoft\'s commercial interests. What happened to the Free Software revolution?<br><br>Live Mesh has a very heavy infrastructure behind it but it fails on so many counts that one cannot even think that it will succeed on the global scale. The problem lies in attempting to design a universal generic solution for everything and then failing miserably on all counts except some.<br><br>As a developer I fail to see how I could use this?</div>\
	 </div>\
	 </li>\
	 </ul>\
';

(function() {
	
	





Dsq.Debug.profile(function() {
	if(Dsq.jsonData.request.page == 1 && Dsq.jsonData.request.is_initial_load) {
		Dsq.container.innerHTML = Dsq.Templates.header() + Dsq.container.innerHTML + Dsq.Templates.footer();
	}
	Dsq.$(Dsq.curPageId).innerHTML = Dsq.$(Dsq.curPageId).innerHTML.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
}); // Dsq.Debug.Profile

// HACK: Resetting cache because we're done with.
Dsq.Utils.gebiFromElementCollectionCache = null;


	
	
	var dsq_styleEl = document.getElementById(disqus_container_id);
	var dsq_anchorEl = document.getElementsByTagName('a')[0];
	
	Dsq.Thread.fc = Dsq.Utils.getStyle(dsq_styleEl, 'color');
	if(dsq_anchorEl) { Dsq.Thread.ac = Dsq.Utils.getStyle(dsq_anchorEl, 'color'); }
	Dsq.Thread.ff = Dsq.Utils.getStyle(dsq_styleEl, (Dsq.Utils.ie || window.opera ? 'fontFamily' : 'font-family'));
	// For Safari / Opera: strip quotes.
	Dsq.Thread.ff = Dsq.Thread.ff.replace(/['"]/g, '');
	Dsq.Thread.fc = encodeURIComponent(Dsq.Thread.fc);
	Dsq.Thread.ac = encodeURIComponent(Dsq.Thread.ac);
	Dsq.Thread.ff = encodeURIComponent(Dsq.Thread.ff);

	
	
	
	if(Dsq.$(Dsq.Templates.addPostContainer)) {
		// TODO: Check to see if theme uses postmessage.
		if (window.disqus_use_postmessage) {
			Dsq.frames['reply_0'] = new Dsq.ReplyFrame(Dsq.$(Dsq.Templates.textareaContainer));
			Dsq.frames['reply_0'].init(function() {
				// Use fallback iframe
				Dsq.$(Dsq.Templates.addPostContainer).innerHTML = '';
				var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
				Dsq.Iframes.showReplyIframeInContainer(Dsq.$(Dsq.Templates.addPostContainer), null, {theme: theme});
				// if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
			});
		} else {
			// DEPRECATED
			Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-post-add'));
		}
	}

	
	

	
	if(document.location.hash != '') {
		document.location.hash = document.location.hash.substring(1);
	}

	Dsq.Popup.showCookieMsgs();

	
	if(document.location.search != '' && location.hash != '#disqus_thread') {
		var reply_id = Dsq.Utils.getRequestParams().dsq;
		if(reply_id) { document.location.hash = 'comment-' + reply_id; }
	}

	
	if((typeof OB_Script != 'undefined') && (typeof OB_versionNum != 'undefined')) {
		if(navigator.userAgent.indexOf("Firefox") != -1) {
			if(window.frames['dsq-reply-frame']) {
				window.frames['dsq-reply-frame'].location = Dsq.Urls.REPLY + (new Date()).getTime() + '&f=scobleizer&t=ray_ozzie_delivers_with_live_mesh&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

	if (Dsq.jsonData.integration.theme == 4) {
		if (Dsq.jsonData.realtime_enabled) {
			Dsq.Realtime.initialize();
		}
	}

	



	window.ExecuteWhen = (function () {
	var obj = {}
	
	// Private
	var running = false;
	var timer = null;
	var pending = [];
	var startTimer = function() {
		running = true;
		timer = setInterval(obj.heartBeat, 100);
	};
	var stopTimer = function() {
		running = false;
		clearInterval(timer);
	};
	
	// Public
	obj.add = function (condition, code) {
		pending.push([condition,code]);
		this.heartBeat(); //!
		if (!running) {
			startTimer();
		}
	};
	obj.heartBeat = function() {
		if (!pending.length) {
			stopTimer();
		}
		var newPending = [];
		for (var i=0; i<pending.length; i++) {
			var cond = pending[i][0];
			var code = pending[i][1];
			// FIXME: if cond or code throw an error, they never get removed from pending
			if (cond()){
				code();
			}
			else {
				newPending.push([cond, code]);
			}
		}
		pending = newPending;
	};
	return obj;
})();

// also used in embed_thread.js:
window.fbIsReady = function () {return window.FB && FB.init;};
// NOTE: This script gets executed again without threadEl
//       set when we are loaded again as the fbc_receiver.
//       In this case, we don't need the hidden container.

if(!window.FB || !FB.init) {
	if(window.Dsq && Dsq.container) {
		// container is not present when init.js is loaded from an xd-receiver iframe; in this case,
		// we don't need the FB_HiddenContainer anyway.
		var fbDiv = document.createElement('div');
		fbDiv.id = "FB_HiddenContainer";	// Required or else FeatureLoader will execute a document.write.
		fbDiv.style.position = 'absolute';	// This is intentionally not setting display to none as this breaks
		fbDiv.style.top = '-10000px';		// Flash in Safari.
		fbDiv.style.left = '-10000px';
		fbDiv.style.width = '0px';
		fbDiv.style.height = '0px';
		Dsq.container.appendChild(fbDiv);
	}
	var fbJS = document.createElement('script');
	fbJS.type = "text/javascript";
	fbJS.src = "http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php";
	document.getElementsByTagName('head')[0].appendChild(fbJS);

	ExecuteWhen.add(window.fbIsReady,
		function () {
			// HACK: This is a workaround FBC's single domain limitation by
			//		 allowing sites to create multiple forums with different
			//		 Facebook API keys.  This must be used in conjunction with
			//		 disqus_facebook_forum (see authenticateFacebook).
			var facebook_api_key = 'faaf467d0f47abde553c3b8e0e1b3570';
			if (typeof disqus_facebook_api_key != 'undefined') {
				facebook_api_key = disqus_facebook_api_key;
			}

			FB.init(facebook_api_key, window.facebookXdReceiverPath || null,
				{fetchSignedPublicSessionData: true});
		});
}


	


if(typeof(disqus_callback) == 'function') {
	var callback_params = Dsq.Utils.getRequestParams()['dsq_cbp'] || null;

	// We don't care about any errors in third-party code
	try {
		disqus_callback(callback_params);
	} catch (x) {
		if (typeof(console) != 'undefined' && typeof(console.log) == 'function') {
			// But it would be nice to let developers know about them
			console.log(x);
		}
		// pass
	}

	// HACK: We don't know if the callback wraps our container, which may
	// possibly result in a new DOM element.
	Dsq.container = document.getElementById('dsq-content');
}

// Global event handler for narcissus.
if (Dsq.jsonData.integration.theme == 4) {
	var g = Dsq.Utils.ie ? document : window;
	Dsq.Utils.addEventListener(g, 'keydown', function(event) {
		// Handle "enter" key on input for post box.
		if ((event.keyCode || event.which) == 13) {
			var target = Dsq.Utils.ie ? event.srcElement : event.target;
			// For Safari bug, detect text node.
			if (target.nodeType == 3) {
				target = target.parentNode;
			}

			if (target.nodeName == 'INPUT' &&
				target.parentNode.className == 'dsq-input-wrapper') {
				var postId = Dsq.Utils.extractId(target);
				Dsq.Templates.postComment(postId, this, false);
			}
		}
	});
}

})();




