




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": [], "has_more_reactions": false, "users": {"c2cf7ff3860cb7aa0088c1a97d286d07": {"username": "Brotherhood of the Bean", "tumblr": "", "display_name": "Brotherhood of the Bean", "url": "http://disqus.com/guest/c2cf7ff3860cb7aa0088c1a97d286d07/", "registered": false, "linkedin": "", "blog": "http://blog.brotherhoodofthebean.com/feed/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/189/5794/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6b76da357e510aa8f5eb0c132e6c41c9": {"username": "haydn", "tumblr": "", "display_name": "haydn", "url": "http://disqus.com/guest/6b76da357e510aa8f5eb0c132e6c41c9/", "registered": false, "linkedin": "", "blog": "http://www.mediangler.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": ""}, "7299c1ef9c67d75e92a121ca471f98a7": {"username": "Jason H", "tumblr": "", "display_name": "Jason H", "url": "http://disqus.com/guest/7299c1ef9c67d75e92a121ca471f98a7/", "registered": false, "linkedin": "", "blog": "http://www.itedge.net/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": ""}, "f620f4647fb816073c9152a284245e64": {"username": "booger", "tumblr": "", "display_name": "booger", "url": "http://disqus.com/guest/f620f4647fb816073c9152a284245e64/", "registered": false, "linkedin": "", "blog": "http://boogerblog.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": ""}, "097b5e581c9ce2b67bd57f39d8f8aaf5": {"username": "Mike Flynn", "tumblr": "", "display_name": "Mike Flynn", "url": "http://disqus.com/guest/097b5e581c9ce2b67bd57f39d8f8aaf5/", "registered": false, "linkedin": "", "blog": "http://hellyeahbitch.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": ""}, "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": ""}, "91a6d5aea5dce5c8364f8d6d17032a23": {"username": "Cider", "tumblr": "", "display_name": "Cider", "url": "http://disqus.com/guest/91a6d5aea5dce5c8364f8d6d17032a23/", "registered": false, "linkedin": "", "blog": "http://in-cider.spaces.msn.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": ""}, "3553f5e0db0fd1ec4e40a932a2d8f5b3": {"username": "Robert Scoble", "tumblr": "", "display_name": "Robert Scoble", "url": "http://disqus.com/guest/3553f5e0db0fd1ec4e40a932a2d8f5b3/", "registered": false, "linkedin": "", "blog": "http://scobleizer.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4069/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b9ba1eb612adfc10357bd4fd2802fd45": {"username": "Don MacAskill", "tumblr": "", "display_name": "Don MacAskill", "url": "http://disqus.com/guest/b9ba1eb612adfc10357bd4fd2802fd45/", "registered": false, "linkedin": "", "blog": "http://blogs.smugmug.com/onethumb", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/12/7888/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8026c39cfa6fd801cf635ae3ee846a17": {"username": "Dan Blank", "tumblr": "", "display_name": "Dan Blank", "url": "http://disqus.com/guest/8026c39cfa6fd801cf635ae3ee846a17/", "registered": false, "linkedin": "", "blog": "http://www.danblank.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/594/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5e1140855c47af5e6c5e548bec95a168": {"username": "shannonclark", "tumblr": "", "display_name": "shannonclark", "url": "http://disqus.com/guest/5e1140855c47af5e6c5e548bec95a168/", "registered": false, "linkedin": "", "blog": "http://shannonclark.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/173/3735/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "edfed92f9dfda48e55d386486c9457cd": {"username": "John Dodds", "tumblr": "", "display_name": "John Dodds", "url": "http://disqus.com/guest/edfed92f9dfda48e55d386486c9457cd/", "registered": false, "linkedin": "", "blog": "http://makemarketinghistory.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": ""}, "b0f83bd6d8d38fbe49c05e60022e7291": {"username": "Patrick Dodds", "tumblr": "", "display_name": "Patrick Dodds", "url": "http://disqus.com/guest/b0f83bd6d8d38fbe49c05e60022e7291/", "registered": false, "linkedin": "", "blog": "http://tenyearsofpics.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": ""}, "e1676412cd98cb70b0abd770ecdeb206": {"username": "Tony", "tumblr": "", "display_name": "Tony", "url": "http://disqus.com/guest/e1676412cd98cb70b0abd770ecdeb206/", "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": ""}, "2d52cee66fc6d0b83d5c723007f4fcea": {"username": "Jeremy Wright", "tumblr": "", "display_name": "Jeremy Wright", "url": "http://disqus.com/guest/2d52cee66fc6d0b83d5c723007f4fcea/", "registered": false, "linkedin": "", "blog": "http://www.b5media.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/20175/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "acae3d3ed39401f0549c6ead4c3b091a": {"username": "Jack", "tumblr": "", "display_name": "Jack", "url": "http://disqus.com/guest/acae3d3ed39401f0549c6ead4c3b091a/", "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": ""}, "e82d00a012b8dd31ceac8858d632fbc9": {"username": "Joe Baressi", "tumblr": "", "display_name": "Joe Baressi", "url": "http://disqus.com/guest/e82d00a012b8dd31ceac8858d632fbc9/", "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": ""}, "9b646ff3eeda1f01cc2b1cb86d1634f9": {"username": "paul", "tumblr": "", "display_name": "paul", "url": "http://disqus.com/guest/9b646ff3eeda1f01cc2b1cb86d1634f9/", "registered": false, "linkedin": "", "blog": "http://dotnetjunkies.com/WebLog/paul/default.aspx", "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": ""}, "f4f2e0e9b27b8ae5dc665ecb3f5a6357": {"username": "susan mernit", "tumblr": "", "display_name": "susan mernit", "url": "http://disqus.com/guest/f4f2e0e9b27b8ae5dc665ecb3f5a6357/", "registered": false, "linkedin": "", "blog": "http://susanmernit.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": ""}, "846fff8fec7914005c679d580347e944": {"username": "VentStation.com", "tumblr": "", "display_name": "VentStation.com", "url": "http://disqus.com/guest/846fff8fec7914005c679d580347e944/", "registered": false, "linkedin": "", "blog": "http://www.ventstation.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": ""}, "b108c659f272a3d7fde9a7e3b0620a8b": {"username": "Skeptic", "tumblr": "", "display_name": "Skeptic", "url": "http://disqus.com/guest/b108c659f272a3d7fde9a7e3b0620a8b/", "registered": false, "linkedin": "", "blog": "http://www.dead20.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": ""}, "3896ebc63cfabe3690b3b51bc168e99a": {"username": "J. Jeffryes", "tumblr": "", "display_name": "J. Jeffryes", "url": "http://disqus.com/guest/3896ebc63cfabe3690b3b51bc168e99a/", "registered": false, "linkedin": "", "blog": "http://jjeffryes.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": ""}, "c9b77638ad36999a2ab529a4a9d2b8f3": {"username": "plexusity", "tumblr": "", "display_name": "plexusity", "url": "http://disqus.com/guest/c9b77638ad36999a2ab529a4a9d2b8f3/", "registered": false, "linkedin": "", "blog": "http://plexusity.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": ""}, "a8a18dfaa0dddef9cb80008326a9c22d": {"username": "Brandon Watson", "tumblr": "", "display_name": "Brandon Watson", "url": "http://disqus.com/guest/a8a18dfaa0dddef9cb80008326a9c22d/", "registered": false, "linkedin": "", "blog": "http://parents.imsafer.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": ""}, "435bbbd819bc85c8a7c561c33dad4c57": {"username": "Larry Myers", "tumblr": "", "display_name": "Larry Myers", "url": "http://disqus.com/guest/435bbbd819bc85c8a7c561c33dad4c57/", "registered": false, "linkedin": "", "blog": "http://www.myersds.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": ""}, "9edd7150a63d804cc2444415597c782b": {"username": "Greg Martin", "tumblr": "", "display_name": "Greg Martin", "url": "http://disqus.com/guest/9edd7150a63d804cc2444415597c782b/", "registered": false, "linkedin": "", "blog": "http://juniorgolfamerica.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": ""}, "f97e8f2de92a83c4b479f2ba1692d474": {"username": "PXLated", "tumblr": "", "display_name": "PXLated", "url": "http://disqus.com/guest/f97e8f2de92a83c4b479f2ba1692d474/", "registered": false, "linkedin": "", "blog": "http://www.geise.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": ""}, "4d60901d185ea95874ed7adfa9b905b5": {"username": "Sheamus", "tumblr": "", "display_name": "Sheamus", "url": "http://disqus.com/guest/4d60901d185ea95874ed7adfa9b905b5/", "registered": false, "linkedin": "", "blog": "http://www.bigbrook.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": ""}, "c2cb359ff3ec0e0eb4426089e179ce3f": {"username": "Kevin Burton", "tumblr": "", "display_name": "Kevin Burton", "url": "http://disqus.com/guest/c2cb359ff3ec0e0eb4426089e179ce3f/", "registered": false, "linkedin": "", "blog": "http://tailrank.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": ""}, "24973e5b118aedfb306dadb38c8c6305": {"username": "John Furrier", "tumblr": "", "display_name": "John Furrier", "url": "http://disqus.com/guest/24973e5b118aedfb306dadb38c8c6305/", "registered": false, "linkedin": "", "blog": "http://podtech.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": ""}, "c50cc88583f045dc4630235a33ade811": {"username": "Josh Wais", "tumblr": "", "display_name": "Josh Wais", "url": "http://disqus.com/guest/c50cc88583f045dc4630235a33ade811/", "registered": false, "linkedin": "", "blog": "http://joshwais.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": ""}, "dahowlett": {"username": "dahowlett", "tumblr": "", "display_name": "dahowlett", "url": "http://disqus.com/dahowlett/", "registered": true, "linkedin": "", "blog": "http://www.dahowlett.com", "remote_domain": null, "points": 2, "facebook": "http://www.facebook.com/dahowlett", "avatar": "http://media.disqus.com/uploads/users/1740/avatar92.jpg", "delicious": "dahowlett", "is_remote": false, "verified": true, "flickr": "dahowlett", "twitter": "", "remote_domain_name": ""}, "ee4f677fbb3f70daf17fa8745772aa90": {"username": "Anthony", "tumblr": "", "display_name": "Anthony", "url": "http://disqus.com/guest/ee4f677fbb3f70daf17fa8745772aa90/", "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": ""}, "822957ddc9af9013f5c0b36abc8d28f4": {"username": "Rentalio", "tumblr": "", "display_name": "Rentalio", "url": "http://disqus.com/guest/822957ddc9af9013f5c0b36abc8d28f4/", "registered": false, "linkedin": "", "blog": "http://www.rentalio.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": ""}, "26493d7270fb206c1e08599674e51e5a": {"username": "LayZ", "tumblr": "", "display_name": "LayZ", "url": "http://disqus.com/guest/26493d7270fb206c1e08599674e51e5a/", "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": ""}, "3423bdecedb1e74120350de4e40c7acf": {"username": "Mujibur", "tumblr": "", "display_name": "Mujibur", "url": "http://disqus.com/guest/3423bdecedb1e74120350de4e40c7acf/", "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": ""}, "95f8be8fbf7e811bc51454b62668a947": {"username": "leightoncooke", "tumblr": "", "display_name": "leightoncooke", "url": "http://disqus.com/guest/95f8be8fbf7e811bc51454b62668a947/", "registered": false, "linkedin": "", "blog": "http://leightoncooke.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/40/1298/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "dfb4e47507d941aa686b8269cf529bbc": {"username": "arieanna", "tumblr": "", "display_name": "arieanna", "url": "http://disqus.com/guest/dfb4e47507d941aa686b8269cf529bbc/", "registered": false, "linkedin": "", "blog": "http://www.blogaholics.ca/", "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": ""}, "9d89a4fc7f8caf838e26d811746fbbc5": {"username": "giafly", "tumblr": "", "display_name": "giafly", "url": "http://disqus.com/guest/9d89a4fc7f8caf838e26d811746fbbc5/", "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": ""}, "ae9f63139bcfd9a3b745ac5780e4d09f": {"username": "Guy", "tumblr": "", "display_name": "Guy", "url": "http://disqus.com/guest/ae9f63139bcfd9a3b745ac5780e4d09f/", "registered": false, "linkedin": "", "blog": "http://www.guysie.nl/", "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": ""}, "fd7602a0570935e8abf26d83380ead35": {"username": "rcjordan", "tumblr": "", "display_name": "rcjordan", "url": "http://disqus.com/guest/fd7602a0570935e8abf26d83380ead35/", "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": ""}, "867d244bd951535bd1f2734cbdf2aeb5": {"username": "condor", "tumblr": "", "display_name": "condor", "url": "http://disqus.com/guest/867d244bd951535bd1f2734cbdf2aeb5/", "registered": false, "linkedin": "", "blog": "http://condor.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": ""}, "280d0e7b4602521bd06b9f3c8d617d1a": {"username": "Dimitar Vesselinov", "tumblr": "", "display_name": "Dimitar Vesselinov", "url": "http://disqus.com/guest/280d0e7b4602521bd06b9f3c8d617d1a/", "registered": false, "linkedin": "", "blog": "http://divedi.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/23/6348/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4375ef89f19dfb3148a4643fdc11b151": {"username": "Scott Smith", "tumblr": "", "display_name": "Scott Smith", "url": "http://disqus.com/guest/4375ef89f19dfb3148a4643fdc11b151/", "registered": false, "linkedin": "", "blog": "http://www.storycasting.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": ""}, "a2f26401afb5410f10460a145cd67c59": {"username": "Stephanie H.", "tumblr": "", "display_name": "Stephanie H.", "url": "http://disqus.com/guest/a2f26401afb5410f10460a145cd67c59/", "registered": false, "linkedin": "", "blog": "http://launchcorp.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": ""}, "e9bdad724254cabff0af21d2f1bb1245": {"username": "DianeV", "tumblr": "", "display_name": "DianeV", "url": "http://disqus.com/guest/e9bdad724254cabff0af21d2f1bb1245/", "registered": false, "linkedin": "", "blog": "http://dianev.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": ""}, "6ac48356a779331dfd22711ece3c3644": {"username": "Drew", "tumblr": "", "display_name": "Drew", "url": "http://disqus.com/guest/6ac48356a779331dfd22711ece3c3644/", "registered": false, "linkedin": "", "blog": "http://www.rocketboom.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/24/1989/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1a1fb62e649757cd002b59fed97dd6f8": {"username": "Sergesnets", "tumblr": "", "display_name": "Sergesnets", "url": "http://disqus.com/guest/1a1fb62e649757cd002b59fed97dd6f8/", "registered": false, "linkedin": "", "blog": "http://www.topmeds20.org/tramadol.htm", "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": ""}, "604b028bab1d4877d3e34a07a360cc11": {"username": "jr", "tumblr": "", "display_name": "jr", "url": "http://disqus.com/guest/604b028bab1d4877d3e34a07a360cc11/", "registered": false, "linkedin": "", "blog": "http://www.noded.com/noded", "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": ""}, "e3153de85c2b92b9518b7b13915b2b8a": {"username": "Life A Venture", "tumblr": "", "display_name": "Life A Venture", "url": "http://disqus.com/guest/e3153de85c2b92b9518b7b13915b2b8a/", "registered": false, "linkedin": "", "blog": "http://lifeisaventure.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": ""}, "cab1041ab2de14f71e070c15f8ae968e": {"username": "Christopher Coulter", "tumblr": "", "display_name": "Christopher Coulter", "url": "http://disqus.com/guest/cab1041ab2de14f71e070c15f8ae968e/", "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": ""}, "413f7a5b77a2554d11409769592b4258": {"username": "Sparkle Road", "tumblr": "", "display_name": "Sparkle Road", "url": "http://disqus.com/guest/413f7a5b77a2554d11409769592b4258/", "registered": false, "linkedin": "", "blog": "http://www.sparkleroad.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": ""}, "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": ""}, "c2ec17b9df58d5843b147cf69deef262": {"username": "Michael Markman", "tumblr": "", "display_name": "Michael Markman", "url": "http://disqus.com/guest/c2ec17b9df58d5843b147cf69deef262/", "registered": false, "linkedin": "", "blog": "http://mickeleh.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": ""}}, "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_06:50:24", "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": {"9652122": {"up_voted": false, "ip": "", "has_replies": false, "message": "Don: I don't think that many of the 1999 businesses actually had audiences of any real size or depth. And, if they did they certainly didn't have a way to monetize those audiences. Today we do.<br><br>But, yeah, you're right. I'd rather own Printing for Less than Digg, for instance. But that's just me.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_15:07:13", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652123": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, in your update, you talk about the Paul Graham's approach to \"worry about building audience first\" and that \"that\u2019s actually a good point of view to take.\"<br><br>Doesn't that sound like the last few internet bubbles in the Valley?  :)<br><br>I still maintain that \"grow big and\" [insert GET ACQUIRED BY GOOGLE or SLAP GOOGLE ADS ON MY PAGES] is still a poor business model (if you can call it that).<br><br>Let's not forget that Yahoo had \"won\" because their portal and search got more eyeballs than anyone.  Only what happened?  Someone with better innovation and execution (Google) came along and suddenly that vast audience switched.  Why?  Because the product was better.<br><br>Audiences are fickle and they vanish.  Better businesses, with better products, can come along and take them away.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_14:45:41", "killed": false, "user_key": "b9ba1eb612adfc10357bd4fd2802fd45", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652124": {"up_voted": false, "ip": "", "has_replies": false, "message": "Brotherhood: the problem is that if your cappuccino has only froth and no cappuccino then it isn't a good cup of joe.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_14:27:17", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652125": {"up_voted": false, "ip": "", "has_replies": false, "message": "LayZ: we already have, gasp, real revenues and real clients. They are on the \"Corporate\" bar on our home page. So, no need to worry about us. At least not short term. Now, if the entire world blows up again like it did in March 2000 and everyone cuts their budgets way back? Then we'll definitely feel pain. But I'm working on diversifying our revenue streams outside the tech world so that we can ride that out.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_13:57:49", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652126": {"up_voted": false, "ip": "", "has_replies": false, "message": "Great foam on a cappuccino can last a long long time.  Poor foam won't sustain through the length of the cup.      I don't think its so much about escaping the froth, but sustaining through it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_14:11:23", "killed": false, "user_key": "c2cf7ff3860cb7aa0088c1a97d286d07", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652128": {"up_voted": false, "ip": "", "has_replies": false, "message": "Key to success is to look past the bubble hype. Of course we are in a bubble there is a massive shift in the economics and wealth of the 'netarchitecture' going on right now.<br><br>There will always be ad revenue in user or audience based models.  The issue is that the ad model doesn't and will not translate from what it is today to the new market environment that is developing.<br><br>Keys to avoid the bubble is to enter the market with a clear sustainable plan: build a great team and execute a business/revenue model that generates cash flow and market position.   From that point on competing on value will determine who stays around.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_13:08:43", "killed": false, "user_key": "24973e5b118aedfb306dadb38c8c6305", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652129": {"up_voted": false, "ip": "", "has_replies": false, "message": "The business model is somewhat proved for web advertsing: if one can get a lot of traffic with reasonable cost, you can make money. The baseline cost for most web-based companies increase very slowly vs traffic. The difficult part is to generate traffic (without costing too much).<br><br>I have compiled a list of websites and their effective CPMs (monthly revenue vs pageviews) based on public information.<br><br><a href=\"http://lifeisaventure.wordpress.com/2006/08/28/how-much-money-do-you-generate-per-pageview/\" rel=\"nofollow\">http://lifeisaventure.wordpress.com/2006/08/28/...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_13:35:49", "killed": false, "user_key": "e3153de85c2b92b9518b7b13915b2b8a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652130": {"up_voted": false, "ip": "", "has_replies": false, "message": "I do love to read your big picture take on all things soap related, Robert. Listen why don't you tell me what in web 2.0 (apps, ideas, services....)corporations can benefit from--Fortune 500 to less that 10 employees. A laundry list please--I want YOUR take. Let's get real with no froth and bring the worthy developers and ideologues to the stage, to the table, this May--face-to-face with real customers with deep wallets eager to get it and use it. I wait.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_13:36:18", "killed": false, "user_key": "c9b77638ad36999a2ab529a4a9d2b8f3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652131": {"up_voted": false, "ip": "", "has_replies": false, "message": "I would suggest that while we are transitioning over the next few years, most of the mainstream does not use the computer to the extent we all do. In other-words, beyond scouring for a picture of Suri, the MSM audiences are not out there yet taking action.<br><br>I can't tell you how amazed I am regularly when people I talk to have never heard of BoingBoing.<br><br>Though this is ok. Froth is made up of lots of little bubbles. You don't really need VC money to make it and you don't need for it to grow into a million dollar business, ever.<br><br>So there is no need to bring it all together into Google and Yahoo, you just need an original idea that people respond to.<br><br>If I didn't have greater aspirations, I could run Rocketboom off of t-shirt sales.<br><br>Micro-payment is the new macro.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_12:28:48", "killed": false, "user_key": "6ac48356a779331dfd22711ece3c3644", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652132": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scoble, I'm impressed.  Some lucidity for once.  Great post that asks a lot of insightful questions.  Isn't a bit ironic, however, that you work for company smack in the middle of this supposed bubble?  What are PodTech's plans to avoid the bubble?  What happens if the ad revenue never materializes?  Will the quality of your content be something good enough people will actually PAY for?  Do you plan to have PodTech lead by example?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_11:18:38", "killed": false, "user_key": "26493d7270fb206c1e08599674e51e5a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652133": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, check out my post from August 24th--\"Blogging outside the silicon valley bubble--my rant on houw to get there.\"<br><a href=\"http://susanmernit.blogspot.com/2006/08/blogging-outside-silicon-valley-bubble_24.html\" rel=\"nofollow\">http://susanmernit.blogspot.com/2006/08/bloggin...</a><br><br>Similar topics<br>Best,<br>Susan", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_11:38:40", "killed": false, "user_key": "f4f2e0e9b27b8ae5dc665ecb3f5a6357", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652134": {"up_voted": false, "ip": "", "has_replies": false, "message": "How to tell a real business from the froth. Determine of the service solves a business (or consumer) problem. If the service fills a need, makes something simpiler, or is entertaining people will continue to use it. There are so many web sites/services that keep popping up, most people will use them for a short while when they are first discovered either by media, linking, blog article, etc. If the site doesn't have meet the need of the new user, the user will go somewere else which does. There are so many new sites pooping up that a person doesn't have time to use them all, or the site doesn't stand out enough to be remembered over a longer term by the user.<br><br>Remember Protopage? I would like to see how many people are still using it compared to when it was first discovered and covered by blogs, podcasts, etc. That's a site that really appeals to the tech crowd, and I bet the majority barely remember it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_09:02:05", "killed": false, "user_key": "7299c1ef9c67d75e92a121ca471f98a7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652135": {"up_voted": false, "ip": "", "has_replies": false, "message": "I am working with a professional online IT community that's been in business since 98 and have been looking for other successful, professional communities in other verticals. Know of any?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-12_15:19:34", "killed": false, "user_key": "a2f26401afb5410f10460a145cd67c59", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652136": {"up_voted": false, "ip": "", "has_replies": false, "message": "Good points. We are also now in a media bubble. It captures the spirit to show two kids on the cover of a magazine and say they are now worth millions just months after starting a website. Suddenly, every other kid in the country wants to hop on board. And to your point, there does seem to be an 'insiders' bubble forming, perhaps it is simply the echo chamber effect.<br><br>But there is nothing wrong with that. When people talked about the real estate bubble in 2005, it was because fundamentals were seriously out of whack. Large institutions to small investors were setting themselves up for finanacial ruin. That bubble represented a danger to society - not only financially, but socially. As much as I want to see housing prices become more reasonable, I have not desire to see a small family lose their home because they took out a mortgage they couldn't handle on a house they couldn't afford. These stats start colliding with divorce rates, and other things that you wouldn't think are related.<br><br>The tech bubble, while fun to talk about, is not like this for the reason's you mentioned. There is a landgrab going on, there is some sensationalism going on, and people are captured in a spirit of success.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_08:25:00", "killed": false, "user_key": "8026c39cfa6fd801cf635ae3ee846a17", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652137": {"up_voted": false, "ip": "", "has_replies": false, "message": "Your post gave me inspiration to write \"Amout us\" page. You are part of our \"statemant\".", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_07:18:59", "killed": false, "user_key": "822957ddc9af9013f5c0b36abc8d28f4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652138": {"up_voted": false, "ip": "", "has_replies": false, "message": "About Rentalio<br><br>Rentalio is something that reminds me on childhood when my family packed suitcases and started journary to the south looking for place to stay next week or two. Those are one of the best memories I have. But as a child I have noticed how stressful was for my parents to find decent place for rent.<br><br>Rentalio is there to make trip planning easier. With Rentalio we want to give you an insight into places you plan to visit and directs you to web resources where you can actually rent properties or contact vacation rentals owners. Whole world is in front of you. Do not be affright to research. Dream your next vacation at Rentalio.<br><br>Rentalio use modern technologies like XML to getter data for experience on site. Many friends told us that Rentalio is nice web 2.0 site. Rentalio is not started to get on front pages of TechCrunch, TailRank, TechMeme, Reddit, Digg, Slashdot or famous bloggers like Scoble. We did not raise any venture capital, running whole project from our pocket money.<br><br>Rentalio do not need buzz and army of bloggers saying it rocks or it sucks. We need feedback from people who actually use it. If you are going to say that we should put some AJAX on our site or integrate a maps API, weather API, local news RSS feeds, Flickr images or put social elements on Rentalio you can keep your oppionion for yourself. We know about all of that but what is the point?<br><br>As a rule of thumb if you do not understand 80% of previous paragraph, or really understand 100%, please contact us and tell us your oppinion.<br><br>Rentalio Team<br><br>---<br>OK Here it is now published at our site. Thank you Robert for great insight!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_07:23:16", "killed": false, "user_key": "822957ddc9af9013f5c0b36abc8d28f4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652139": {"up_voted": false, "ip": "", "has_replies": false, "message": "Saul into Paul, eh? Aboutdarnedtime. ;) Wave to us snarky toads, that have been here all along. You know it's pretty bad when even the hypester-bobbleheads can't dismiss reality away.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_00:11:22", "killed": false, "user_key": "cab1041ab2de14f71e070c15f8ae968e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652140": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>We crashed and were left with a handful of really useful businesses</i><br><br>Never mind that whole, GREATEST LOSS OF WEALTH in human history part, all hail the Oligarchies. And then the thousands of Enronish companies playing the new economy for a fraud racket, add that to the bill.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_00:17:19", "killed": false, "user_key": "cab1041ab2de14f71e070c15f8ae968e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652141": {"up_voted": false, "ip": "", "has_replies": false, "message": "Business has always gone through a boom/bust cylcle. What is different now is the Internet and related technologies lowered the barrier to starting a company, resulting in a higher ratio of attempts to successes.<br><br>When we were in the midst of the last bubble I don't think anyone could see where we'd end up. We crashed and were left with a handful of really useful businesses (google, ebay, amazon, expedia, craigslist, itunes, and the like). Now the second time around we'll have another bubble which may burst depending on how well it is managed and financed, and a few years from now there'll be another handful of really useful businesses and a lot of dead ones.<br><br>The big difference with this Web 2.0 cylcle is it seems limited to a few thousand people who seem desparate to be part of the next big thing, even if it's just the next little thing. I've been in the software industry many years and I really don't understand most of what you talk about any more. Maybe that's okay - you can figure it out and then I'll use what comes out the other end. But don't fool yourself that what's there now is important to anyone outside your small circle right now.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_23:55:46", "killed": false, "user_key": "ee4f677fbb3f70daf17fa8745772aa90", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652142": {"up_voted": false, "ip": "", "has_replies": false, "message": "What is a Lindsay Lohan?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_23:14:34", "killed": false, "user_key": "26493d7270fb206c1e08599674e51e5a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652143": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert:<br><br>Any time you use phrases like:<br><br> \"Because most people outside the little tech bubble we live in every day don\u2019t know how to use Web browsers. They have been trained to use the search box\"<br><br>You've lost me in what you are talking about. If you make assumptions like that you are destined to be sucked into the collapse of the next bubble.  Stop making generalization and start making product. There is a market out there but beware it may be somewhere in the long tail.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_23:25:39", "killed": false, "user_key": "604b028bab1d4877d3e34a07a360cc11", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652144": {"up_voted": false, "ip": "", "has_replies": false, "message": "How long was Mosaic around before anyone that wasn't a supergeek used it? How long was Google around before Joe Average started using it instead of AOL or Yahoo? How long was web-based mail around before typical users started using it instead of Outlook?<br><br>These things are always embraced by the geeks and tech-savy first. The products that rise to the top in the geekosphere then get a chance to filter out to the mundanosphere. It's a slow process. Plenty of people out there still don't really understand how to use a computer. It's a bit much to expect them to embrace wikis and RSS.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_23:45:12", "killed": false, "user_key": "3896ebc63cfabe3690b3b51bc168e99a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652145": {"up_voted": false, "ip": "", "has_replies": false, "message": "Kudos to Hugh MacLeod's GapingVoid for pointing to your excellent post. I'm one reasonable example of those millions of non-technologically advanced users of the Internet.<br><br>Web 2.0 is a label, possibly meaning to suggest something to some potentially much smaller audience group. As a contrast, \"beer\" is another label, meaning something to a much greater audience.<br><br>In March of this year, I began researching the net in an effort to understand the social phenomena giving rise to Blogs (circa 1995), YouTube (much more recent and faster acceptance), up-to-the-minute TechCrunch news of new tech offerings, Digg as a participatory Tech News aggregator et al.<br><br>The \"froth\" is not important to me whereas innovation/fresh original ideas (that work are very important. There also exists so much copying of ideas... Yuk!  And yet, copying is rather to be expected.<br><br>At the same time, there exists so much of use to so many people. For example: Hugh MacLeod is truly creative and original. Tara Hunt is so passionate and enthusiastic (even if you disagree). YouTube is used by so many people to share and connect with others, all with their specific interests. PBWiki, Blogger, GoogleVideo, GooglePages, Gmail et al... Mostly all free to users (excepting the presence of ads).<br><br>Peter Drucker observed that it is difficult if not impossible to appropriately evaluate societal changes in real time, rather it takes time to see the picture and to reasonably understand the impacts on and for society (nationally and on a global scale). Nonetheless I feel a sense of optimism because of the the tremendous amount of creativity and effort being expended by millions of people around the work (and facilitated by the World Wide Web).<br><br>Business models and the economic impacts for people and organizations. Although I think that companies are many times spending foolishly on advertising (including Internet advertising spend), various individuals and people are earning a little money (sometimes not so little). Hugh MacLeod and the Global Micro Brand concept as evidenced through his efforts on behalf of Stormhoek may hold great potential for the future. The young fellow who came up with the Million Dollar Homepage was truly original and creative... Imagine selling pixels! What fun! And, he made a million dollars in less than six months!<br><br>I empathize with your angst in attempting to find the meaning amongst all this creativity and effort. Somehow I sense that you will find an answer, although it is unlikely that the answer will come from VC's or the copycats. Keep reaching out, as I for one (of many) appreciate and applaud your efforts.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_22:34:11", "killed": false, "user_key": "4d60901d185ea95874ed7adfa9b905b5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652146": {"up_voted": false, "ip": "", "has_replies": false, "message": "Last week, Guy Kawasaki linked to a Google video of a panel discussion he moderated. On it was the Carmen San Diego guy, Lauren Elliott, now of Personal News Network. PNN is trying to market to mom, dad and grandma. This excited me. I thought finally, someone is going to address the folks outside the teen (MySpace) crowd and the early adopters. A group that may not even use Google or Yahoo.<br><br>Unfortunately, Elliott revealed nothing or is frustrated by the process of reaching this group outside of running USA Today spreads and advertising on the big four networks. For all I know, that is PNN's plan.<br><br>Let's take the small business owner who doesn't have a web site, which there are many of in western Michigan. How do you reach this group? Google adwords won't help. Chances are if they don't even have a one page brochure-styled web page, they're not browsing the web much. Door-to-door?<br><br>Or, do you write-off this group and say, 'Hey, maybe you don't get it but your kids will.' And, with luck, you can pass your business on before it is margilized by Wal-Mart or Starbucks or some large regional player.<br><br>Do web and web-related businesses geared to help these types of companies simply die?<br><br>Hugh McLeod had a great line in his interview with Seth Godin: \"The best ideas are always last to reach the people who need them the most.\"<br><br>How do we reach them, Hugh? Robert? Lauren Elliott?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_21:52:55", "killed": false, "user_key": "4375ef89f19dfb3148a4643fdc11b151", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652147": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>I feel uncomfortable about your use of the word \"froth\" here and in the last post.  They are very different things - the previous post was a conference on how existing companies should adopt Web 2.0 strategies, and here you use it to describe Web 2.0 companies.<br><br>Secondly, I think you are either not very ambitious about PodTech, or else don't understand the nature of a bubble.  Yes, the money is small, but if PodTech gets 5 million and gets quadruples that in their share of the market, someone else will come along and say \"we can outdo PodTech, but need 20 million\" and so on and so on.  A company making a profit in a market sector will attract other companies and the amount of money to enter that market or continue to grow in that market will grow and grow and grow.  That's the nature of bubbles - they are great and resilient when small but they grow and grow until they pop.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_21:54:53", "killed": false, "user_key": "91a6d5aea5dce5c8364f8d6d17032a23", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652148": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks for the shout-out Robert.  I must agree with going to Joe Kraus for good insight, he's a bright fella.  I just can't figure out what he's doing with the whole wiki thing...<br><br>I will tell you this, the secret keyword?<br><br>Rosebud.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_21:54:47", "killed": false, "user_key": "b108c659f272a3d7fde9a7e3b0620a8b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652149": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, as usual, I write to you with tough love.<br><br>The cognitive dissonance of your posts is getting hard to ignore.<br><br>You revisit Channel 9.  (As do I.)  You lust after Vista RC1.  (Me too.)<br><br>And it\u2019s somehow a joke to you that no Web 2.0 company makes any money.<br><br>But you work for one of them.<br><br>Microsoft makes more money -- earnings as a percent of operating cost -- than any other company on the planet.<br><br>You need to get your ass back up to Seattle while they still remember who you are.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_21:26:20", "killed": false, "user_key": "e82d00a012b8dd31ceac8858d632fbc9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652150": {"up_voted": false, "ip": "", "has_replies": false, "message": "PXLated: the fact that they only know about Google search is what's driving this bubble. That's exactly where the traffic for these things is coming from.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_21:09:46", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652151": {"up_voted": false, "ip": "", "has_replies": false, "message": "It's a bubble but it's also more than that. The way we interact and do business is changing rapidly and success is perhaps getting spread a little more thinly.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_21:00:32", "killed": false, "user_key": "95f8be8fbf7e811bc51454b62668a947", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652152": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ah, Scoble, I love this post. For months I've been thinking that it must've been the fact that I'm not in the valley, or in America, or even anywhere near the tech epicenter that caused me not to get why this 'web 2.0' (to pick a name) thing was important. Because apart from me, and I'm a geek and I love these things, noone else around me is giving a shit.<br><br>But it's not that I'm weird, it's that all the other people who'se blogs I read are stuck in the bubble. Okay, I can live with that :)<br><br>I really don't want to step on anyone's toes, but I'm a fish out of water. I study communications (the oldfashioned kind, where you talk to each other _without_ the cellphone) and as such all my friends are serious non-geeks. They don't understand blogs, or AJAX, or social content, or what not. They don't understand the things I like on the 'net. They get Hyves (the dutch MySpace equivelant), some of them get Flickr. But that's about as far as it goes. So until a fellow student of mine comes up to me ranting on about a web 2.0 company he just got MSN'd about, I'll just mellow out a bit. Things aren't happening as rapidly as I thought they were, after all.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_20:20:56", "killed": false, "user_key": "ae9f63139bcfd9a3b745ac5780e4d09f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652153": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"How can we detect the difference between real businesses and froth? How do you?\"\"<br>----------<br>Instead of hangin with geeks, stop in on commoners. As expressed earlier, most don't know about Google apps, all they know is search.<br>-----<br>Next time you take a road trip, instead of calling ahead for a geek get together, just roll into town and hit their local coffee/bars/clubs and strike up conversations. When you go to Montana, don't meet with the local geeks, meet with \"real, every-day\" people.<br>----<br>It's not real hard to determine if there's a bubble. Look at the last one, ask the locals about which ones they have heard of, discard the other thousand.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_20:25:50", "killed": false, "user_key": "f97e8f2de92a83c4b479f2ba1692d474", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652154": {"up_voted": false, "ip": "", "has_replies": false, "message": "isnt the froth the best bit?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-08_22:42:56", "killed": false, "user_key": "413f7a5b77a2554d11409769592b4258", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652155": {"up_voted": false, "ip": "", "has_replies": false, "message": "&gt; Q. insiders tell me that one of the top search terms over at Yahoo is actually \u201cGoogle.\u201d And one of the top search terms at Google is \u201cYahoo.\u201d Why is that?<br><br>As a long time web designer/SEO/marketer who talks to non-Web people on a constant basis, I'd say that this statistic is due to the fact that most people don't understand how browsers work (heck, they don't even know what a \"browser\" is and have never heard the word).  Either their browser's home page is a search engine page and all they know is how to *search* for something (e.g., \"Google\" at Yahoo) or they simply don't know that they can type a domain name into their browser address bar -- and this goes for most people, be they living in remote mountain areas or CEOs of billion-dollar corporations. What you'll hear is this:<br><br>Me:  go to my website, <a href=\"http://blahblah.com\" rel=\"nofollow\">blahblah.com</a><br>Them:  Don't worry -- I'll find it!<br><br>Find it? What's to find?  But that statement is your first clue, and the reason why Web marketing *must* take the search engines into consideration.  It's not like paper advertising, which you must somehow place into the hands of the consumer.  Nor like TV, which is another medium altogether. Different medium; different delivery solution.<br><br>As to the other questions here, I'd say that sorting out a business plan comes immediately after any \"bright idea\" ... that is, how you'll make money from it.  Yes, it's exciting to build an audience.  Even more exciting is making a living from something you like/love.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-05_17:09:14", "killed": false, "user_key": "e9bdad724254cabff0af21d2f1bb1245", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652156": {"up_voted": false, "ip": "", "has_replies": false, "message": "&gt;I wish we had a conference on \u201chow to find customers outside of the tech bubble?<br><br>robert, you're invited to seoroadshow (this is a test, see if you can find the details all by yourself, hhh)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-05_15:56:48", "killed": false, "user_key": "fd7602a0570935e8abf26d83380ead35", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652157": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yes Don, some folks improve on others but why are you techies (I am not one) persistently fixated on who leads and who's got something better at the expense of another. There is so much room in the sandbox. Yahoo and Google are good. Microsoft and Apple are good. Tehnorati and Wiki are good. And not to tout oligopolies there's plenty of room for also rans. There is such an appetite. But I will tell you this: you have to reach the mainstream to succeed. You must end the esoteric edge. Adopt the user POV. At our web 2.0 conference (corproate audience) this May we will limit techie vitriol--for everyone's beneficial engagement and to actually galvanize them. It will be a lovefest not a hatefest so common in tech blogs. You see it's about resonating with one user. We cause self-destruction somewhat like the Republicans and Democrats cause America to be seen in the wrong light around the world day-by-day in their \"conversations\". Let's call on the carpet those who do wrong--this is the power of our beneficial transparency. But let's encourage everyone too. I am fan of every lab, every creator--they will empower our future. Remember almost all including Bill G. and Sergei B. started virtually alone. I don't think Sergei can even accept his own accomplishments in his persistent reference to \"luck\" for his success. C'mon guys let's celebrate and let's reach out to the non-techs, the masses of users yet to be born. Where your riches are. Graham is right to the extent that you have to give audiences something they want. Contrary to some bloggers cynical view it is not pornography and free videos they seek. Who have they been talking to? People want ease, speed, knowledge, help, functionality, ubiquity, pleasure... C'mon. Let's get real. Navel gazing won't generate revenue. Applaud Paul for believing in \"three guys\" and putting money behind them. There's plenty of room for all.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_15:21:36", "killed": false, "user_key": "c9b77638ad36999a2ab529a4a9d2b8f3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652158": {"up_voted": false, "ip": "", "has_replies": false, "message": "This class is worth attending. Robert posed THE question--and because his blog powers remain strong he induced wise participation from the commentarium. Thanks all. Keep it coming. I'm taking notes.<br><br>What's a product? Something that attracts customers. What's a good show? Something that puts asses in seats. What's a leader? Someone with followers. What's a good web 2.0 service? Something that attracts clicks.<br><br>At the end of the day, it isn't the inventers, entrepreneurs or VCs who can define success: it's the audience. They either click or they don't.<br><br>So what's the recipe for success? I don't have it, but I can tell you where to look<br><br>An unsolved problem is a product opportunity. A customer pain-point is a product opportunity. But a solved problem is also an opportunity--provided you can offer a substantially easier, faster, and/or cheaper solution.<br><br>When you play the feature war on a small scale, the best you an hope for is to trade some of your audience with your competitors. But the big win is not to seduce customers away from competitors (though that's always fun), the big win is to pull non-customers into the circle.<br><br>Anyone who wants to break out of the froth can find  hugely valuable clues and tools in \"Blue Ocean Strategy\" by W. Chan Kim and Ren\u00e9e Mauborgne. Their subtitle captures their premise very well. \"How to Create Uncontested Market Space and Make the Competition Irrelevant.\"<br><br>Enough with thinking outside the box. \"Blue Ocean Strategy\" can teach you how to think outside the bubble.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_15:22:35", "killed": false, "user_key": "c2ec17b9df58d5843b147cf69deef262", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652159": {"up_voted": false, "ip": "", "has_replies": false, "message": "It's not just a fantasy world 2.0 bubble - the housing one is comming to the Valley as well...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_15:34:26", "killed": false, "user_key": "acae3d3ed39401f0549c6ead4c3b091a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652160": {"up_voted": false, "ip": "", "has_replies": false, "message": "In your article, you mention that people \"outside the bubble\" just know how to \"search\" when they are looking for something.  I consider myself to be very technically savvy.  However, I must admit that \"search\" is my main means of finding things on the web as well.  For those of us in the \"great unwashed\" outside the bubble, what should we be doing besides using Google or Yahoo?<br><br>Thanks for your help.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-05_02:35:52", "killed": false, "user_key": "9edd7150a63d804cc2444415597c782b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652161": {"up_voted": false, "ip": "", "has_replies": false, "message": "Q. insiders tell me that one of the top search terms over at Yahoo is actually \u201cGoogle.\u201d And one of the top search terms at Google is \u201cYahoo.\u201d Why is that?<br><br>A. One reason is because ordinary people know it's \"Yahoo!\" but they don't know whether it's dotNET, dotCOM, dotORG, dotGOV or something else entirely. Worse, with some sites, if you guess the extension wrong you get a NSFW squatter page. So it's easier to search.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-05_08:46:52", "killed": false, "user_key": "9d89a4fc7f8caf838e26d811746fbbc5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652162": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"... Are struggling to figure out how to get outside the TechCrunch/TailRank/TechMeme/Reddit/Digg/Slashdot/Om/Scoble bubble.\"<br><br>Whoah...... Tailrank is part of the bubble!  Sweet! :-P", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_18:33:32", "killed": false, "user_key": "c2cb359ff3ec0e0eb4426089e179ce3f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652163": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm sure that most Web 2.0 companies have yet to get anywhere near critical mass because they assume that the average Joe knows how to use all the stuff on offer. Even the best assume too much - so progress will be slow. Which is disappointing for a market segment that offer lots of services cheaply to occasional users but hasn't a clue on how to build mutually beneficial relationships - must use services in return for payment.<br><br>So they will either remain in 'beta-land' or die.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_18:31:24", "killed": false, "user_key": "e1676412cd98cb70b0abd770ecdeb206", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652164": {"up_voted": false, "ip": "", "has_replies": false, "message": "Paul: I don't and the person who writes it doesn't even like writing it, but she says it pays her rent so who am I to argue? It's not the kind of thing I want to read, though.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:00:04", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652165": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>I've written a lengthy response inspired by this post and the comments here. Take a look at <a href=\"http://blogs.jigzaw.com/?p=76\" rel=\"nofollow\">http://blogs.jigzaw.com/?p=76</a><br><br>Shannon", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-05_22:57:20", "killed": false, "user_key": "5e1140855c47af5e6c5e548bec95a168", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652166": {"up_voted": false, "ip": "", "has_replies": false, "message": "Larry: yeah, good ideas do get found pretty quickly even if run by people who don't understand people networking. The word-of-mouth network is hyper efficient now.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_14:40:47", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652167": {"up_voted": false, "ip": "", "has_replies": false, "message": "Don: at PodTech we have a whole team analyzing Google keywords. We're living in a Google world now, huh?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_14:39:30", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652168": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, do you know anyone who reads the Lindsay Lohan blog?<br><br>Check it out, it's Google and Alexa rank are not very good.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_14:51:23", "killed": false, "user_key": "9b646ff3eeda1f01cc2b1cb86d1634f9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652169": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>One of the reasons there's so much froth is because it's super easy to put a web-based business into motion now compared to 2000.<br><br>Hosting is a commodity, and bandwidth and storage is cheap.<br>Development tools are cheap and plentiful, whether Microsoft or LAMP based.<br><br>Many web based businesses are started by people who treat them as a hobby or something that isn't a make or break thing for them. Start up costs and maintenance costs are so low that it takes a long time, if ever, for a web business to shut down from lack of money.<br><br>Look how Digg, Reddit, and Del.icio.us started. Small teams and low overhead. Good ideas will rise to top eventually, it just will take a bit longer unless the good ideas have people behind them who are good marketers and understand networking (the people kind, not the wires kind).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_14:39:15", "killed": false, "user_key": "435bbbd819bc85c8a7c561c33dad4c57", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652170": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, like JotSpot, we also have someone on staff who's sole job is working on AdWords/AdSense/Overture/AdCenter keywords.<br><br>Given our small size, that means 6% of our workfoce does nothing else.  And truth be told, some of the rest of us also pitch in and help fairly regularly.<br><br>Google keywords (and the rest to a lesser extent) are our 2nd biggest driver for signups.  They're that important.<br><br>If you're curious, our biggest (at least 60% of our growth, and possibly as high as 80% - there's a gray area we don't have enough insight about) driver is easily customer referrals.<br><br>Don", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_14:29:25", "killed": false, "user_key": "b9ba1eb612adfc10357bd4fd2802fd45", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652171": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well - I'm not in the valley and I've been saying for some time my website stats reflect far more the influence of start pages than search engines. So me no valley boy but life's a changing - just that netvibes is a techcrunch boost so not exactly outside the bubble.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_18:32:07", "killed": false, "user_key": "6b76da357e510aa8f5eb0c132e6c41c9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652172": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oops, I of course meant to say <a href=\"http://joshwais.blogspot.com/\" rel=\"nofollow\">joshwais.blogspot.com</a>.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_18:05:41", "killed": false, "user_key": "c50cc88583f045dc4630235a33ade811", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652173": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ok, that makes some sense.  Yes, there are lots of sites I use to look for specific items.  However, I do spend a great deal of time at Google looking up things that I don't already have committed to memory.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-05_21:58:47", "killed": false, "user_key": "9edd7150a63d804cc2444415597c782b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652174": {"up_voted": false, "ip": "", "has_replies": false, "message": "What a great post.  What a great topic.  I couldn't agree more. And on top of that, I like the way the thought's put.  The thing is, I think, that there's so much pathos involved, so much money tied up and ultimately, by those who are really in it, so much uncertainty, that the issue's hard to get to.  Hopefully this is only one of many posts like this, by Robert and the rest of the blogosphere.  I do think it's coming.  The anti-froth. The see-it-as-it-is kinda folks and consequently their posts and the repercussions of them.  Well, maybe that\u2019s just wishful thinking, but we\u2019ll see.<br>The most important thing I gather from your point, and what I\u2019ve been thinking about in much the same way is the concept of perspective.  For example, the now famous 53,651 Kopelman post is a great example of how even while being a VC but just out of the Valley one can get a more accurate perspective (he\u2019s from Philly).<br>Another example, now that I think about it, is my own.  I follow the industry closely, very closely, I know my startups, my big players and the top bloggers, but I still have the luxury of seeing it from the outside.  I\u2019m in high school still.  Yep, I said it, high school.  I guess I have a way different perspective for that matter then.  And well, I couldn\u2019t agree with you more, like I said.  I love this stuff, I really do, but I want more and I want it better and I think it\u2019s going to take some pretty major changes.  Not to self promote, but I just wrote a post on this myself at <a href=\"http://joshwais.blogspot.com\" rel=\"nofollow\">joshwais.blogspot.com</a> .", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_17:47:38", "killed": false, "user_key": "c50cc88583f045dc4630235a33ade811", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652175": {"up_voted": false, "ip": "", "has_replies": false, "message": "Success in web 2.0? Both the idea AND the execution make you smile. Often you get the first but not the second (Riya springs to mind). Wikipedia has both (though is it 1.0 or 2.0?), as does Flickr.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_16:12:38", "killed": false, "user_key": "b0f83bd6d8d38fbe49c05e60022e7291", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652176": {"up_voted": false, "ip": "", "has_replies": false, "message": "Differentiate between froth and businesses? Businesses have a business plan, marketing plan, products, customers, revenue, traffic, etc.<br><br>Froth says \"I just need 1% of X\" and \"It's like Flickr + YouTube\" and \"we're planning to do Office, but online\" and \"our search will revolutionize the Y industry\"...<br><br>Without the core tenets of business, any idea or feature is just that - an idea or a feature.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_17:51:40", "killed": false, "user_key": "2d52cee66fc6d0b83d5c723007f4fcea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652177": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert - you've said on many an occasion that you're a geek. Why then should it be a surprise if you don't reach the non-geek audience? This I think is where Hugh McLeod scores in spades. He reaches out to a geek audience to detect a buzz but that's not where his ultimate focus lays. And he's playing with ideas that are ripe for innovation. Tech is intrinsically innovative but there's always been the 'oh that's geek stuff' image. Changing the perception, concentrating on the UI, making it all intuitive has to go a long way.<br><br>I think the industry can learn a great deal from the work being done at FreshBooks, where a simple problem, which has, traditionally been difficult to solve, is chugging along very nicely. It was conceived and directed by users. Not geeks or, god forbid, accountants (of which, as you know, I'm one)<br><br>That's where the geek learning, if I can use that term, comes in. IMO.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_17:19:44", "killed": false, "user_key": "dahowlett", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "3 years 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}, "9652178": {"up_voted": false, "ip": "", "has_replies": false, "message": "@marie germain:<br><br>I think you're misunderstanding me.  If you read my linked blog entries and such, you'll find that I'm an advocate of lots of competition.  I'm a Flickr competitor, in some sense of the word, yet I blogged about 'Flickr doesn't suck'.<br><br>I could care less who has more market share than I do, because I don't want to be the market leader.  It's part of our corporate strategy to NOT go for market share but rather for ecstatic customers who drive profit.  I'm sure we could have offered free accounts away and grown like a rocket, too (we were on the scene years before Flickr), but that wasn't our target.<br><br>Ask anyone who knows me and my company - we're fixated on the customer experience and customer service, not on who's in the lead.  I have to have ready answers, because everyone I meet says \"But how are you different than Flickr?\", but that's life.  :)<br><br>Don", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_15:51:31", "killed": false, "user_key": "b9ba1eb612adfc10357bd4fd2802fd45", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652179": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert<br><br>Good post.  really.<br><br>one point: I believe that Web 2.0 is driven by advertising because that's the path of least resistance.  There's no need to sit down and actually figure out how to sell a product to customers or relate revenues to the product in anyway - just generate \"buzz\" and get money from Google.<br><br>In an advertising driven model, the product *is* the associated marketing, hence the requirement for parties, a-listers, groupies, etc.  It's strangely much like how I perceive the process to value \"products\" (actors, directors, etc) in the movie and TV industry ....<br><br>Booger", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_17:05:06", "killed": false, "user_key": "f620f4647fb816073c9152a284245e64", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652180": {"up_voted": false, "ip": "", "has_replies": false, "message": "Greg: if you're a geek you probably can name a few other Web sites as well. What's your favorite travel site? Mine isn't Google. What's your favorite real estate site? Mine isn't Google. What's your favorite mobile site? Mine isn't Google. What's your favorite news site? Mine isn't Google's search engine. What's your favorite blog? Mine isn't on Google.<br><br>People outside of the tech world usually have trouble naming all these things. Then I watch how they use the computer and they mainly use the main search page they got used to.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-05_02:47:21", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652181": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm going to go out on a limb here and suggest the froth is because there is too much me too.  Ajax is not the problem.  Creativity is not the problem.  Doing cool for cool sake is the problem.  Understanding the size of a market, the potential customers, existing solutions and possible new products - those are the things that a person should ask before venturing out on a new company/product.  Look at the list of Dead2.0 and the other web2.0 lists and give an honest assessment as to which ones make you say \"oh, that's a problem I have.\"<br><br>Napster is great for this.  Before Napster, it was a total pain to find and get MP3s.  Flickr too solves a problem in that is makes is remarkably easier to put your photos out for other people.  Many of the others out there...honestly, what are the real problems that some of these other companies are solving?<br><br>The one thing from the last bubble (and I had a spectacular set of seats for that implosion) that I hated hearing was \"you just don't get it.\"  I'm starting to hear more and more of that when I hear new business ideas and suggest that perhaps there's nothing interesting there.  That, to me anyway, is a sign of that we are in a bubble.<br><br>What is the problem you are solving?  Ask the neighbor of your parents if they have that problem.  Then ask some kids at a movie theater.  Then some of your college/grad school friends who did not major in a technology field.  If they say you will be solving a problem for them, you are on to something.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_17:05:57", "killed": false, "user_key": "a8a18dfaa0dddef9cb80008326a9c22d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652182": {"up_voted": false, "ip": "", "has_replies": false, "message": "99% of the traffic is going to go to the top 5 on Google, Yahoo and Live.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_16:38:25", "killed": false, "user_key": "9b646ff3eeda1f01cc2b1cb86d1634f9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652183": {"up_voted": false, "ip": "", "has_replies": false, "message": "Anyone wishing to start a Web 2.0 company would do well to familiarise themselves with:<br><br><a href=\"http://www.digitalpoint.com/tools/suggestion/\" rel=\"nofollow\">http://www.digitalpoint.com/tools/suggestion/</a><br><br>So we have:<br><br>Ruby on Rails:<br>122 per day Wordtracker / 302 per day Overture<br>Lindsay Lohan:<br>28,752 per day Wordtracker / 20,387 per day Overture<br><br>It's not difficult to see what the non-geeks (read real world) are interested in.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_16:28:20", "killed": false, "user_key": "846fff8fec7914005c679d580347e944", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652184": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"How can we detect the difference between real businesses and froth? How do you?\"<br><br>You who?  Was that question directed at venture capitalists?<br><br>Because the rest of us don't care all that much.   If someone wants to give me a free online word processor and spreadsheet and it serves all my needs, saves me from having to buy a server for my small company etc., then why should I care how or if they finance it all?<br><br>Now I'll answer that question:  Because I want the free service to be around for a while and not shut down one day with all my data in it.<br><br>The reality is that even when these companies fail, they don't fail over night.  Usually you have some warning signs, including outright notification that the free stuff is going to end soon.  That's a move they always make as a last ditch effort to pay the rent.  Time enough for you to make other arrangements.  \"Hey they're about to charge for the service.  Abandon ship!\"<br><br>I don't think end-users of web technology get burned all that bad, if at all during these bubble bursts.  The people left holding the bag are creditors... office buildings with unpaid rent, CBS, NBC,ABC,etc that have run expensive ads for a company now working out of a PO box (again), credit card companies, and so on.   Couldn't happen to nicer folks by the way.<br><br>One of the few forms of free entertainment us underclass long taaaaaaailers have is watching the big guys club each other to death.  We hope it never ends, and if it does we'll just go back to watching TV for a while.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_16:09:07", "killed": false, "user_key": "macbeach", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "3 years 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}, "9652185": {"up_voted": false, "ip": "", "has_replies": false, "message": "Heh.  Need to focus on getting eyeballs.  Advertising-based revenue models.<br><br>Sounds eerily familiar to web 1.0.  Yet you're convinced it's different this time.  Goodbye.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_16:21:54", "killed": false, "user_key": "3423bdecedb1e74120350de4e40c7acf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652186": {"up_voted": false, "ip": "", "has_replies": false, "message": "Even if it isn't a bubble for the credible reasons you outline, that doesn't mean web 2.0 isn't over-hyped. Too many people are talking about audiences and business models and not about meeting consumer needs and it is only from the latter that you can expect cashflow to follow.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_16:19:37", "killed": false, "user_key": "edfed92f9dfda48e55d386486c9457cd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652187": {"up_voted": false, "ip": "", "has_replies": false, "message": "1998: eyeballs, eyeballs, eyeballs...<br>2006: AJAX, AJAX, AJAX...<br><br>More \"masterpieces\":<br>- create AJAX-enabled podcasts<br>- incentivize blogging network effects<br>- integrate user-centred ad delivery<br>- undefined citizen-media widgets<br>- integrate rich-client tagclouds<br>- post Cluetrain synergies<br>- share standards-compliant folksonomies<br>- beta-test A-list life-hacks<br>- remix data-driven web services<br>- post blogging blogospheres<br><a href=\"http://www.emptybottle.org/bullshit/\" rel=\"nofollow\">http://www.emptybottle.org/bullshit/</a><br><br>Stop this madness! Solve real problems! There are lots of them... Create useful services!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_16:04:22", "killed": false, "user_key": "280d0e7b4602521bd06b9f3c8d617d1a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652188": {"up_voted": false, "ip": "", "has_replies": false, "message": "If bursting the Web 2.0 bubble does not have a negative impact on mainstream investors or the economy as a whole then how do we tell if and when the bubble has popped? Will small tech firms just decide to stop innovating because some analyst says it's not worth the effort? I don't think so. In fact a frothy tech economy might be a good thing. We might just need an enterprise to establish a system for identifying the best Web 2.0 feature providers as <a href=\"http://Amazon.com\" rel=\"nofollow\">Amazon.com</a> did with the long tail of books.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:47:44", "killed": false, "user_key": "aff533acf9b173682e713fb1cb290a94", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652189": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey Don: Nice web services powered by Smugmug. I promise to look into it more. Sounds like you have great service there. Hope you find ways to get that to the masses. It's nice that it's not an advertising model. People are slowly learning that great things are worth $$ from the web--not just off the shelf. I cannot tell you how behind the photo shops are!! I have a client (a big retail chain--I am a markerter) that still has a guy hiding in a backroom printing photos at a snail's pace for a price per photo that is not competitive--and the customers have to doddle in the mall for an hour+ while they wait. SmugMug is a print service killer. Everybody these days in the photo print biz: grocers, Walmart, pharmacies. It is all so archaic. You just have to induce trial. I will celebrate you and SmugMug too.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-04_17:39:58", "killed": false, "user_key": "c9b77638ad36999a2ab529a4a9d2b8f3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652190": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yes, I read that on your blog, but do you believe everything people tell you about this crazy internet game?<br><br>How can a blog without passion be successful?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:11:00", "killed": false, "user_key": "867d244bd951535bd1f2734cbdf2aeb5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652191": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mike: the drunkeness comes from Stormhoek. No bubbles in its wine. But they were serving a variety of beers at the TechCrunch party where there were a few drunk people. Luckily I was kept busy working at that party with my video camera.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:19:39", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652193": {"up_voted": false, "ip": "", "has_replies": false, "message": "Arieanna: that's a good point. The word of mouth network is really where the action is. Even for Smugmug (see Don's comment above).<br><br>Condor: a good blog (to me) is both passionate and authoritative, but getting a large audience doesn't require either. Having good food isn't a requirement for building a restaurant chain either, unfortunately. MacDonalds comes to mind.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:17:47", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652194": {"up_voted": false, "ip": "", "has_replies": false, "message": "Everyone that went to college knows that to \"pop\" froth, you wipe your thumb on this side of your nose and put said thumb in the middle of your keg cup.  Its pops a lot of the little bubbles in the middle and the rest start to pop after that.<br><br>So I guess thats like Google sticking its big thumb on top of all the Calendar startups or web office offerings (or something bigger down the road that we haven't thought of yet).  Once group of little bubbles pop, others will pop along with it.<br><br>...of course thats only if the \"new\" internet works the same as beer.  Not sure if thats 100% the case, but I have seen a few people that looked quite drunk off of Web 2.0 lately.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:15:55", "killed": false, "user_key": "097b5e581c9ce2b67bd57f39d8f8aaf5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652195": {"up_voted": false, "ip": "", "has_replies": false, "message": "The web 2.0 bubble is incredibly apparent in my world - I talk to the people in the bubble, but also those outside (yep, I'm that Lohan blogger). The contrast is amazing. People outside the bubble may not even know what Gmail is (really, I've had to explain it).<br><br>We make the assumption inside the bubble that it's about being tech savvy or not. I really don't think it is. It's just the real world. And the needs are different. 99% of the world doesn't need or want most of the Web 2.0 tools we build. Truth is most of what we build is for ourselves then we wonder why we don't have the audience.<br><br>You're right, we need to turn the tables. Think about the audience first. I've got a marketing degree and my advice is to listen outside the bubble. Ask real people what frustrates them, what they want, and how you can simplify what they do. If you want a large audience, you have to sit back and realize most of your cool ideas are not for them.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:08:44", "killed": false, "user_key": "dfb4e47507d941aa686b8269cf529bbc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652196": {"up_voted": false, "ip": "", "has_replies": false, "message": "And to clear it up, the Lohan Groupie blog that I write has different traffic patterns than what you'd see on a tech blog. The search ranking is steadily increasing on Google, second page and PR 6, but traffic comes to it in ways you would not expect. And lots of it.<br><br>Looking at Alexa and Google for a blog in the Entertainment world is like trying to judge wine based on its color instead of its taste.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-09-03_15:12:47", "killed": false, "user_key": "dfb4e47507d941aa686b8269cf529bbc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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}, "9652197": {"up_voted": false, "ip": "", "has_replies": false, "message": "Only for community scobleizer.com! HOT!<br>1.[URL=http://www.topmeds20.org/tramadol.htm]US Doctors &amp; Pharmacy. Great Service and Prices. VISA-AMX-DISCOVER-COD-Mastercard FREE FEDEX SHIPPING! SATURDAY DELIVERY(where available)orders in by 3pm ship same day[/URL]<br>2.[URL=http://www.topmeds20.org/soma.htm]Accepting Credit cards or C.O.D. Soma  Free FedEx shipping . FDA approved Medications &amp; U.S. Licensed Pharmacists[/URL]", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-12-08_05:58:03", "killed": false, "user_key": "1a1fb62e649757cd002b59fed97dd6f8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years 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": "18364420", "user_id": "anonymous", "forum_id": "125200", "hash": -8333909489312563339}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "getting_outside_the_frothy_bubble", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18364420, "num_posts": 74, "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=getting_outside_the_frothy_bubble' +
		'&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/getting_outside_the_frothy_bubble/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='	+ 'getting_outside_the_frothy_bubble'
			+ '&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/getting_outside_the_frothy_bubble/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">74</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/getting_outside_the_frothy_bubble/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/getting_outside_the_frothy_bubble/">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/getting_outside_the_frothy_bubble/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:18364420" 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'				: 'getting_outside_the_frothy_bubble',
			// 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/getting_outside_the_frothy_bubble/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='	+ 'getting_outside_the_frothy_bubble'
			+ '&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='	+ 'getting_outside_the_frothy_bubble'
			+ '&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='		+ 'getting_outside_the_frothy_bubble'
				+ '&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/18364420/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-9652170">\
	 <div id="dsq-comment-header-9652170" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652170" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652170" href="http://blogs.smugmug.com/onethumb" target="_blank" rel="nofollow">Don MacAskill</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652170" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652170" class="dsq-comment-message">Robert, like JotSpot, we also have someone on staff who\'s sole job is working on AdWords/AdSense/Overture/AdCenter keywords.<br><br>Given our small size, that means 6% of our workfoce does nothing else.  And truth be told, some of the rest of us also pitch in and help fairly regularly.<br><br>Google keywords (and the rest to a lesser extent) are our 2nd biggest driver for signups.  They\'re that important.<br><br>If you\'re curious, our biggest (at least 60% of our growth, and possibly as high as 80% - there\'s a gray area we don\'t have enough insight about) driver is easily customer referrals.<br><br>Don</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652169">\
	 <div id="dsq-comment-header-9652169" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652169" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652169" href="http://www.myersds.com/" target="_blank" rel="nofollow">Larry Myers</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652169" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652169" class="dsq-comment-message">Robert,<br><br>One of the reasons there\'s so much froth is because it\'s super easy to put a web-based business into motion now compared to 2000.<br><br>Hosting is a commodity, and bandwidth and storage is cheap.<br>Development tools are cheap and plentiful, whether Microsoft or LAMP based.<br><br>Many web based businesses are started by people who treat them as a hobby or something that isn\'t a make or break thing for them. Start up costs and maintenance costs are so low that it takes a long time, if ever, for a web business to shut down from lack of money.<br><br>Look how Digg, Reddit, and Del.icio.us started. Small teams and low overhead. Good ideas will rise to top eventually, it just will take a bit longer unless the good ideas have people behind them who are good marketers and understand networking (the people kind, not the wires kind).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652167">\
	 <div id="dsq-comment-header-9652167" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652167" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652167" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652167" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652167" class="dsq-comment-message">Don: at PodTech we have a whole team analyzing Google keywords. We\'re living in a Google world now, huh?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652166">\
	 <div id="dsq-comment-header-9652166" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652166" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652166" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652166" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652166" class="dsq-comment-message">Larry: yeah, good ideas do get found pretty quickly even if run by people who don\'t understand people networking. The word-of-mouth network is hyper efficient now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652168">\
	 <div id="dsq-comment-header-9652168" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652168" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652168" href="http://dotnetjunkies.com/WebLog/paul/default.aspx" target="_blank" rel="nofollow">paul</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652168" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652168" class="dsq-comment-message">Robert, do you know anyone who reads the Lindsay Lohan blog?<br><br>Check it out, it\'s Google and Alexa rank are not very good.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652164">\
	 <div id="dsq-comment-header-9652164" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652164" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652164" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652164" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652164" class="dsq-comment-message">Paul: I don\'t and the person who writes it doesn\'t even like writing it, but she says it pays her rent so who am I to argue? It\'s not the kind of thing I want to read, though.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652195">\
	 <div id="dsq-comment-header-9652195" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652195" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652195" href="http://www.blogaholics.ca/" target="_blank" rel="nofollow">arieanna</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652195" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652195" class="dsq-comment-message">The web 2.0 bubble is incredibly apparent in my world - I talk to the people in the bubble, but also those outside (yep, I\'m that Lohan blogger). The contrast is amazing. People outside the bubble may not even know what Gmail is (really, I\'ve had to explain it).<br><br>We make the assumption inside the bubble that it\'s about being tech savvy or not. I really don\'t think it is. It\'s just the real world. And the needs are different. 99% of the world doesn\'t need or want most of the Web 2.0 tools we build. Truth is most of what we build is for ourselves then we wonder why we don\'t have the audience.<br><br>You\'re right, we need to turn the tables. Think about the audience first. I\'ve got a marketing degree and my advice is to listen outside the bubble. Ask real people what frustrates them, what they want, and how you can simplify what they do. If you want a large audience, you have to sit back and realize most of your cool ideas are not for them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652190">\
	 <div id="dsq-comment-header-9652190" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652190" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652190" href="http://condor.wordpress.com/" target="_blank" rel="nofollow">condor</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652190" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652190" class="dsq-comment-message">Yes, I read that on your blog, but do you believe everything people tell you about this crazy internet game?<br><br>How can a blog without passion be successful?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652196">\
	 <div id="dsq-comment-header-9652196" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652196" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652196" href="http://www.blogaholics.ca/" target="_blank" rel="nofollow">arieanna</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652196" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652196" class="dsq-comment-message">And to clear it up, the Lohan Groupie blog that I write has different traffic patterns than what you\'d see on a tech blog. The search ranking is steadily increasing on Google, second page and PR 6, but traffic comes to it in ways you would not expect. And lots of it.<br><br>Looking at Alexa and Google for a blog in the Entertainment world is like trying to judge wine based on its color instead of its taste.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652194">\
	 <div id="dsq-comment-header-9652194" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652194" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652194" href="http://hellyeahbitch.com/" target="_blank" rel="nofollow">Mike Flynn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652194" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652194" class="dsq-comment-message">Everyone that went to college knows that to "pop" froth, you wipe your thumb on this side of your nose and put said thumb in the middle of your keg cup.  Its pops a lot of the little bubbles in the middle and the rest start to pop after that.<br><br>So I guess thats like Google sticking its big thumb on top of all the Calendar startups or web office offerings (or something bigger down the road that we haven\'t thought of yet).  Once group of little bubbles pop, others will pop along with it.<br><br>...of course thats only if the "new" internet works the same as beer.  Not sure if thats 100% the case, but I have seen a few people that looked quite drunk off of Web 2.0 lately.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652193">\
	 <div id="dsq-comment-header-9652193" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652193" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652193" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652193" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652193" class="dsq-comment-message">Arieanna: that\'s a good point. The word of mouth network is really where the action is. Even for Smugmug (see Don\'s comment above).<br><br>Condor: a good blog (to me) is both passionate and authoritative, but getting a large audience doesn\'t require either. Having good food isn\'t a requirement for building a restaurant chain either, unfortunately. MacDonalds comes to mind.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652191">\
	 <div id="dsq-comment-header-9652191" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652191" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652191" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652191" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652191" class="dsq-comment-message">Mike: the drunkeness comes from Stormhoek. No bubbles in its wine. But they were serving a variety of beers at the TechCrunch party where there were a few drunk people. Luckily I was kept busy working at that party with my video camera.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652188">\
	 <div id="dsq-comment-header-9652188" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652188" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652188">scott</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652188" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652188" class="dsq-comment-message">If bursting the Web 2.0 bubble does not have a negative impact on mainstream investors or the economy as a whole then how do we tell if and when the bubble has popped? Will small tech firms just decide to stop innovating because some analyst says it\'s not worth the effort? I don\'t think so. In fact a frothy tech economy might be a good thing. We might just need an enterprise to establish a system for identifying the best Web 2.0 feature providers as <a href="http://Amazon.com" rel="nofollow">Amazon.com</a> did with the long tail of books.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652187">\
	 <div id="dsq-comment-header-9652187" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652187" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652187" href="http://divedi.blogspot.com/" target="_blank" rel="nofollow">Dimitar Vesselinov</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652187" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652187" class="dsq-comment-message">1998: eyeballs, eyeballs, eyeballs...<br>2006: AJAX, AJAX, AJAX...<br><br>More "masterpieces":<br>- create AJAX-enabled podcasts<br>- incentivize blogging network effects<br>- integrate user-centred ad delivery<br>- undefined citizen-media widgets<br>- integrate rich-client tagclouds<br>- post Cluetrain synergies<br>- share standards-compliant folksonomies<br>- beta-test A-list life-hacks<br>- remix data-driven web services<br>- post blogging blogospheres<br><a href="http://www.emptybottle.org/bullshit/" rel="nofollow">http://www.emptybottle.org/bullshit/</a><br><br>Stop this madness! Solve real problems! There are lots of them... Create useful services!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652184">\
	 <div id="dsq-comment-header-9652184" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652184" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652184" href="http://blog.macb.net" target="_blank" rel="nofollow">macbeach</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652184" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652184" class="dsq-comment-message">"How can we detect the difference between real businesses and froth? How do you?"<br><br>You who?  Was that question directed at venture capitalists?<br><br>Because the rest of us don\'t care all that much.   If someone wants to give me a free online word processor and spreadsheet and it serves all my needs, saves me from having to buy a server for my small company etc., then why should I care how or if they finance it all?<br><br>Now I\'ll answer that question:  Because I want the free service to be around for a while and not shut down one day with all my data in it.<br><br>The reality is that even when these companies fail, they don\'t fail over night.  Usually you have some warning signs, including outright notification that the free stuff is going to end soon.  That\'s a move they always make as a last ditch effort to pay the rent.  Time enough for you to make other arrangements.  "Hey they\'re about to charge for the service.  Abandon ship!"<br><br>I don\'t think end-users of web technology get burned all that bad, if at all during these bubble bursts.  The people left holding the bag are creditors... office buildings with unpaid rent, CBS, NBC,ABC,etc that have run expensive ads for a company now working out of a PO box (again), credit card companies, and so on.   Couldn\'t happen to nicer folks by the way.<br><br>One of the few forms of free entertainment us underclass long taaaaaaailers have is watching the big guys club each other to death.  We hope it never ends, and if it does we\'ll just go back to watching TV for a while.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652186">\
	 <div id="dsq-comment-header-9652186" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652186" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652186" href="http://makemarketinghistory.blogspot.com/" target="_blank" rel="nofollow">John Dodds</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652186" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652186" class="dsq-comment-message">Even if it isn\'t a bubble for the credible reasons you outline, that doesn\'t mean web 2.0 isn\'t over-hyped. Too many people are talking about audiences and business models and not about meeting consumer needs and it is only from the latter that you can expect cashflow to follow.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652185">\
	 <div id="dsq-comment-header-9652185" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652185" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652185">Mujibur</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652185" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652185" class="dsq-comment-message">Heh.  Need to focus on getting eyeballs.  Advertising-based revenue models.<br><br>Sounds eerily familiar to web 1.0.  Yet you\'re convinced it\'s different this time.  Goodbye.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652183">\
	 <div id="dsq-comment-header-9652183" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652183" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652183" href="http://www.ventstation.com/" target="_blank" rel="nofollow">VentStation.com</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652183" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652183" class="dsq-comment-message">Anyone wishing to start a Web 2.0 company would do well to familiarise themselves with:<br><br><a href="http://www.digitalpoint.com/tools/suggestion/" rel="nofollow">http://www.digitalpoint.com/tools/suggestion/</a><br><br>So we have:<br><br>Ruby on Rails:<br>122 per day Wordtracker / 302 per day Overture<br>Lindsay Lohan:<br>28,752 per day Wordtracker / 20,387 per day Overture<br><br>It\'s not difficult to see what the non-geeks (read real world) are interested in.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652182">\
	 <div id="dsq-comment-header-9652182" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652182" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652182" href="http://dotnetjunkies.com/WebLog/paul/default.aspx" target="_blank" rel="nofollow">paul</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652182" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652182" class="dsq-comment-message">99% of the traffic is going to go to the top 5 on Google, Yahoo and Live.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652179">\
	 <div id="dsq-comment-header-9652179" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652179" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652179" href="http://boogerblog.wordpress.com/" target="_blank" rel="nofollow">booger</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652179" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652179" class="dsq-comment-message">Robert<br><br>Good post.  really.<br><br>one point: I believe that Web 2.0 is driven by advertising because that\'s the path of least resistance.  There\'s no need to sit down and actually figure out how to sell a product to customers or relate revenues to the product in anyway - just generate "buzz" and get money from Google.<br><br>In an advertising driven model, the product *is* the associated marketing, hence the requirement for parties, a-listers, groupies, etc.  It\'s strangely much like how I perceive the process to value "products" (actors, directors, etc) in the movie and TV industry ....<br><br>Booger</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652181">\
	 <div id="dsq-comment-header-9652181" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652181" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652181" href="http://parents.imsafer.com/" target="_blank" rel="nofollow">Brandon Watson</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652181" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652181" class="dsq-comment-message">I\'m going to go out on a limb here and suggest the froth is because there is too much me too.  Ajax is not the problem.  Creativity is not the problem.  Doing cool for cool sake is the problem.  Understanding the size of a market, the potential customers, existing solutions and possible new products - those are the things that a person should ask before venturing out on a new company/product.  Look at the list of Dead2.0 and the other web2.0 lists and give an honest assessment as to which ones make you say "oh, that\'s a problem I have."<br><br>Napster is great for this.  Before Napster, it was a total pain to find and get MP3s.  Flickr too solves a problem in that is makes is remarkably easier to put your photos out for other people.  Many of the others out there...honestly, what are the real problems that some of these other companies are solving?<br><br>The one thing from the last bubble (and I had a spectacular set of seats for that implosion) that I hated hearing was "you just don\'t get it."  I\'m starting to hear more and more of that when I hear new business ideas and suggest that perhaps there\'s nothing interesting there.  That, to me anyway, is a sign of that we are in a bubble.<br><br>What is the problem you are solving?  Ask the neighbor of your parents if they have that problem.  Then ask some kids at a movie theater.  Then some of your college/grad school friends who did not major in a technology field.  If they say you will be solving a problem for them, you are on to something.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652177">\
	 <div id="dsq-comment-header-9652177" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652177" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652177" href="http://www.dahowlett.com" target="_blank" rel="nofollow">dahowlett</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652177" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652177" class="dsq-comment-message">Robert - you\'ve said on many an occasion that you\'re a geek. Why then should it be a surprise if you don\'t reach the non-geek audience? This I think is where Hugh McLeod scores in spades. He reaches out to a geek audience to detect a buzz but that\'s not where his ultimate focus lays. And he\'s playing with ideas that are ripe for innovation. Tech is intrinsically innovative but there\'s always been the \'oh that\'s geek stuff\' image. Changing the perception, concentrating on the UI, making it all intuitive has to go a long way.<br><br>I think the industry can learn a great deal from the work being done at FreshBooks, where a simple problem, which has, traditionally been difficult to solve, is chugging along very nicely. It was conceived and directed by users. Not geeks or, god forbid, accountants (of which, as you know, I\'m one)<br><br>That\'s where the geek learning, if I can use that term, comes in. IMO.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652176">\
	 <div id="dsq-comment-header-9652176" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652176" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652176" href="http://www.b5media.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652176" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652176" class="dsq-comment-message">Differentiate between froth and businesses? Businesses have a business plan, marketing plan, products, customers, revenue, traffic, etc.<br><br>Froth says "I just need 1% of X" and "It\'s like Flickr + YouTube" and "we\'re planning to do Office, but online" and "our search will revolutionize the Y industry"...<br><br>Without the core tenets of business, any idea or feature is just that - an idea or a feature.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652163">\
	 <div id="dsq-comment-header-9652163" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652163" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652163">Tony</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652163" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652163" class="dsq-comment-message">I\'m sure that most Web 2.0 companies have yet to get anywhere near critical mass because they assume that the average Joe knows how to use all the stuff on offer. Even the best assume too much - so progress will be slow. Which is disappointing for a market segment that offer lots of services cheaply to occasional users but hasn\'t a clue on how to build mutually beneficial relationships - must use services in return for payment.<br><br>So they will either remain in \'beta-land\' or die.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652162">\
	 <div id="dsq-comment-header-9652162" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652162" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652162" href="http://tailrank.com/" target="_blank" rel="nofollow">Kevin Burton</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652162" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652162" class="dsq-comment-message">"... Are struggling to figure out how to get outside the TechCrunch/TailRank/TechMeme/Reddit/Digg/Slashdot/Om/Scoble bubble."<br><br>Whoah...... Tailrank is part of the bubble!  Sweet! :-P</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652152">\
	 <div id="dsq-comment-header-9652152" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652152" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652152" href="http://www.guysie.nl/" target="_blank" rel="nofollow">Guy</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652152" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652152" class="dsq-comment-message">Ah, Scoble, I love this post. For months I\'ve been thinking that it must\'ve been the fact that I\'m not in the valley, or in America, or even anywhere near the tech epicenter that caused me not to get why this \'web 2.0\' (to pick a name) thing was important. Because apart from me, and I\'m a geek and I love these things, noone else around me is giving a shit.<br><br>But it\'s not that I\'m weird, it\'s that all the other people who\'se blogs I read are stuck in the bubble. Okay, I can live with that :)<br><br>I really don\'t want to step on anyone\'s toes, but I\'m a fish out of water. I study communications (the oldfashioned kind, where you talk to each other _without_ the cellphone) and as such all my friends are serious non-geeks. They don\'t understand blogs, or AJAX, or social content, or what not. They don\'t understand the things I like on the \'net. They get Hyves (the dutch MySpace equivelant), some of them get Flickr. But that\'s about as far as it goes. So until a fellow student of mine comes up to me ranting on about a web 2.0 company he just got MSN\'d about, I\'ll just mellow out a bit. Things aren\'t happening as rapidly as I thought they were, after all.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652153">\
	 <div id="dsq-comment-header-9652153" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652153" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652153" href="http://www.geise.com/" target="_blank" rel="nofollow">PXLated</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652153" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652153" class="dsq-comment-message">"How can we detect the difference between real businesses and froth? How do you?""<br>----------<br>Instead of hangin with geeks, stop in on commoners. As expressed earlier, most don\'t know about Google apps, all they know is search.<br>-----<br>Next time you take a road trip, instead of calling ahead for a geek get together, just roll into town and hit their local coffee/bars/clubs and strike up conversations. When you go to Montana, don\'t meet with the local geeks, meet with "real, every-day" people.<br>----<br>It\'s not real hard to determine if there\'s a bubble. Look at the last one, ask the locals about which ones they have heard of, discard the other thousand.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652151">\
	 <div id="dsq-comment-header-9652151" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652151" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652151" href="http://leightoncooke.wordpress.com/" target="_blank" rel="nofollow">leightoncooke</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652151" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652151" class="dsq-comment-message">It\'s a bubble but it\'s also more than that. The way we interact and do business is changing rapidly and success is perhaps getting spread a little more thinly.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652150">\
	 <div id="dsq-comment-header-9652150" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652150" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652150" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652150" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652150" class="dsq-comment-message">PXLated: the fact that they only know about Google search is what\'s driving this bubble. That\'s exactly where the traffic for these things is coming from.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652149">\
	 <div id="dsq-comment-header-9652149" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652149" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652149">Joe Baressi</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652149" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652149" class="dsq-comment-message">Robert, as usual, I write to you with tough love.<br><br>The cognitive dissonance of your posts is getting hard to ignore.<br><br>You revisit Channel 9.  (As do I.)  You lust after Vista RC1.  (Me too.)<br><br>And it’s somehow a joke to you that no Web 2.0 company makes any money.<br><br>But you work for one of them.<br><br>Microsoft makes more money -- earnings as a percent of operating cost -- than any other company on the planet.<br><br>You need to get your ass back up to Seattle while they still remember who you are.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652146">\
	 <div id="dsq-comment-header-9652146" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652146" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652146" href="http://www.storycasting.com/" target="_blank" rel="nofollow">Scott Smith</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652146" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652146" class="dsq-comment-message">Last week, Guy Kawasaki linked to a Google video of a panel discussion he moderated. On it was the Carmen San Diego guy, Lauren Elliott, now of Personal News Network. PNN is trying to market to mom, dad and grandma. This excited me. I thought finally, someone is going to address the folks outside the teen (MySpace) crowd and the early adopters. A group that may not even use Google or Yahoo.<br><br>Unfortunately, Elliott revealed nothing or is frustrated by the process of reaching this group outside of running USA Today spreads and advertising on the big four networks. For all I know, that is PNN\'s plan.<br><br>Let\'s take the small business owner who doesn\'t have a web site, which there are many of in western Michigan. How do you reach this group? Google adwords won\'t help. Chances are if they don\'t even have a one page brochure-styled web page, they\'re not browsing the web much. Door-to-door?<br><br>Or, do you write-off this group and say, \'Hey, maybe you don\'t get it but your kids will.\' And, with luck, you can pass your business on before it is margilized by Wal-Mart or Starbucks or some large regional player.<br><br>Do web and web-related businesses geared to help these types of companies simply die?<br><br>Hugh McLeod had a great line in his interview with Seth Godin: "The best ideas are always last to reach the people who need them the most."<br><br>How do we reach them, Hugh? Robert? Lauren Elliott?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652148">\
	 <div id="dsq-comment-header-9652148" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652148" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652148" href="http://www.dead20.com/" target="_blank" rel="nofollow">Skeptic</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652148" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652148" class="dsq-comment-message">Thanks for the shout-out Robert.  I must agree with going to Joe Kraus for good insight, he\'s a bright fella.  I just can\'t figure out what he\'s doing with the whole wiki thing...<br><br>I will tell you this, the secret keyword?<br><br>Rosebud.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652147">\
	 <div id="dsq-comment-header-9652147" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652147" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652147" href="http://in-cider.spaces.msn.com/" target="_blank" rel="nofollow">Cider</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652147" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652147" class="dsq-comment-message">Robert,<br><br>I feel uncomfortable about your use of the word "froth" here and in the last post.  They are very different things - the previous post was a conference on how existing companies should adopt Web 2.0 strategies, and here you use it to describe Web 2.0 companies.<br><br>Secondly, I think you are either not very ambitious about PodTech, or else don\'t understand the nature of a bubble.  Yes, the money is small, but if PodTech gets 5 million and gets quadruples that in their share of the market, someone else will come along and say "we can outdo PodTech, but need 20 million" and so on and so on.  A company making a profit in a market sector will attract other companies and the amount of money to enter that market or continue to grow in that market will grow and grow and grow.  That\'s the nature of bubbles - they are great and resilient when small but they grow and grow until they pop.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652145">\
	 <div id="dsq-comment-header-9652145" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652145" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652145" href="http://www.bigbrook.blogspot.com/" target="_blank" rel="nofollow">Sheamus</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652145" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652145" class="dsq-comment-message">Kudos to Hugh MacLeod\'s GapingVoid for pointing to your excellent post. I\'m one reasonable example of those millions of non-technologically advanced users of the Internet.<br><br>Web 2.0 is a label, possibly meaning to suggest something to some potentially much smaller audience group. As a contrast, "beer" is another label, meaning something to a much greater audience.<br><br>In March of this year, I began researching the net in an effort to understand the social phenomena giving rise to Blogs (circa 1995), YouTube (much more recent and faster acceptance), up-to-the-minute TechCrunch news of new tech offerings, Digg as a participatory Tech News aggregator et al.<br><br>The "froth" is not important to me whereas innovation/fresh original ideas (that work are very important. There also exists so much copying of ideas... Yuk!  And yet, copying is rather to be expected.<br><br>At the same time, there exists so much of use to so many people. For example: Hugh MacLeod is truly creative and original. Tara Hunt is so passionate and enthusiastic (even if you disagree). YouTube is used by so many people to share and connect with others, all with their specific interests. PBWiki, Blogger, GoogleVideo, GooglePages, Gmail et al... Mostly all free to users (excepting the presence of ads).<br><br>Peter Drucker observed that it is difficult if not impossible to appropriately evaluate societal changes in real time, rather it takes time to see the picture and to reasonably understand the impacts on and for society (nationally and on a global scale). Nonetheless I feel a sense of optimism because of the the tremendous amount of creativity and effort being expended by millions of people around the work (and facilitated by the World Wide Web).<br><br>Business models and the economic impacts for people and organizations. Although I think that companies are many times spending foolishly on advertising (including Internet advertising spend), various individuals and people are earning a little money (sometimes not so little). Hugh MacLeod and the Global Micro Brand concept as evidenced through his efforts on behalf of Stormhoek may hold great potential for the future. The young fellow who came up with the Million Dollar Homepage was truly original and creative... Imagine selling pixels! What fun! And, he made a million dollars in less than six months!<br><br>I empathize with your angst in attempting to find the meaning amongst all this creativity and effort. Somehow I sense that you will find an answer, although it is unlikely that the answer will come from VC\'s or the copycats. Keep reaching out, as I for one (of many) appreciate and applaud your efforts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652142">\
	 <div id="dsq-comment-header-9652142" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652142" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652142">LayZ</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652142" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652142" class="dsq-comment-message">What is a Lindsay Lohan?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652143">\
	 <div id="dsq-comment-header-9652143" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652143" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652143" href="http://www.noded.com/noded" target="_blank" rel="nofollow">jr</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652143" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652143" class="dsq-comment-message">Robert:<br><br>Any time you use phrases like:<br><br> "Because most people outside the little tech bubble we live in every day don’t know how to use Web browsers. They have been trained to use the search box"<br><br>You\'ve lost me in what you are talking about. If you make assumptions like that you are destined to be sucked into the collapse of the next bubble.  Stop making generalization and start making product. There is a market out there but beware it may be somewhere in the long tail.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652144">\
	 <div id="dsq-comment-header-9652144" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652144" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652144" href="http://jjeffryes.blogspot.com/" target="_blank" rel="nofollow">J. Jeffryes</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652144" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652144" class="dsq-comment-message">How long was Mosaic around before anyone that wasn\'t a supergeek used it? How long was Google around before Joe Average started using it instead of AOL or Yahoo? How long was web-based mail around before typical users started using it instead of Outlook?<br><br>These things are always embraced by the geeks and tech-savy first. The products that rise to the top in the geekosphere then get a chance to filter out to the mundanosphere. It\'s a slow process. Plenty of people out there still don\'t really understand how to use a computer. It\'s a bit much to expect them to embrace wikis and RSS.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652141">\
	 <div id="dsq-comment-header-9652141" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652141" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652141">Anthony</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652141" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652141" class="dsq-comment-message">Business has always gone through a boom/bust cylcle. What is different now is the Internet and related technologies lowered the barrier to starting a company, resulting in a higher ratio of attempts to successes.<br><br>When we were in the midst of the last bubble I don\'t think anyone could see where we\'d end up. We crashed and were left with a handful of really useful businesses (google, ebay, amazon, expedia, craigslist, itunes, and the like). Now the second time around we\'ll have another bubble which may burst depending on how well it is managed and financed, and a few years from now there\'ll be another handful of really useful businesses and a lot of dead ones.<br><br>The big difference with this Web 2.0 cylcle is it seems limited to a few thousand people who seem desparate to be part of the next big thing, even if it\'s just the next little thing. I\'ve been in the software industry many years and I really don\'t understand most of what you talk about any more. Maybe that\'s okay - you can figure it out and then I\'ll use what comes out the other end. But don\'t fool yourself that what\'s there now is important to anyone outside your small circle right now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652139">\
	 <div id="dsq-comment-header-9652139" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652139" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652139">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652139" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652139" class="dsq-comment-message">Saul into Paul, eh? Aboutdarnedtime. ;) Wave to us snarky toads, that have been here all along. You know it\'s pretty bad when even the hypester-bobbleheads can\'t dismiss reality away.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652140">\
	 <div id="dsq-comment-header-9652140" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652140" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652140">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652140" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652140" class="dsq-comment-message"><i>We crashed and were left with a handful of really useful businesses</i><br><br>Never mind that whole, GREATEST LOSS OF WEALTH in human history part, all hail the Oligarchies. And then the thousands of Enronish companies playing the new economy for a fraud racket, add that to the bill.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652137">\
	 <div id="dsq-comment-header-9652137" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652137" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652137" href="http://www.rentalio.com/" target="_blank" rel="nofollow">Rentalio</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652137" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652137" class="dsq-comment-message">Your post gave me inspiration to write "Amout us" page. You are part of our "statemant".</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652138">\
	 <div id="dsq-comment-header-9652138" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652138" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652138" href="http://www.rentalio.com/" target="_blank" rel="nofollow">Rentalio</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652138" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652138" class="dsq-comment-message">About Rentalio<br><br>Rentalio is something that reminds me on childhood when my family packed suitcases and started journary to the south looking for place to stay next week or two. Those are one of the best memories I have. But as a child I have noticed how stressful was for my parents to find decent place for rent.<br><br>Rentalio is there to make trip planning easier. With Rentalio we want to give you an insight into places you plan to visit and directs you to web resources where you can actually rent properties or contact vacation rentals owners. Whole world is in front of you. Do not be affright to research. Dream your next vacation at Rentalio.<br><br>Rentalio use modern technologies like XML to getter data for experience on site. Many friends told us that Rentalio is nice web 2.0 site. Rentalio is not started to get on front pages of TechCrunch, TailRank, TechMeme, Reddit, Digg, Slashdot or famous bloggers like Scoble. We did not raise any venture capital, running whole project from our pocket money.<br><br>Rentalio do not need buzz and army of bloggers saying it rocks or it sucks. We need feedback from people who actually use it. If you are going to say that we should put some AJAX on our site or integrate a maps API, weather API, local news RSS feeds, Flickr images or put social elements on Rentalio you can keep your oppionion for yourself. We know about all of that but what is the point?<br><br>As a rule of thumb if you do not understand 80% of previous paragraph, or really understand 100%, please contact us and tell us your oppinion.<br><br>Rentalio Team<br><br>---<br>OK Here it is now published at our site. Thank you Robert for great insight!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652136">\
	 <div id="dsq-comment-header-9652136" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652136" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652136" href="http://www.danblank.com/" target="_blank" rel="nofollow">Dan Blank</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652136" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652136" class="dsq-comment-message">Good points. We are also now in a media bubble. It captures the spirit to show two kids on the cover of a magazine and say they are now worth millions just months after starting a website. Suddenly, every other kid in the country wants to hop on board. And to your point, there does seem to be an \'insiders\' bubble forming, perhaps it is simply the echo chamber effect.<br><br>But there is nothing wrong with that. When people talked about the real estate bubble in 2005, it was because fundamentals were seriously out of whack. Large institutions to small investors were setting themselves up for finanacial ruin. That bubble represented a danger to society - not only financially, but socially. As much as I want to see housing prices become more reasonable, I have not desire to see a small family lose their home because they took out a mortgage they couldn\'t handle on a house they couldn\'t afford. These stats start colliding with divorce rates, and other things that you wouldn\'t think are related.<br><br>The tech bubble, while fun to talk about, is not like this for the reason\'s you mentioned. There is a landgrab going on, there is some sensationalism going on, and people are captured in a spirit of success.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652134">\
	 <div id="dsq-comment-header-9652134" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652134" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652134" href="http://www.itedge.net/blog" target="_blank" rel="nofollow">Jason H</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652134" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652134" class="dsq-comment-message">How to tell a real business from the froth. Determine of the service solves a business (or consumer) problem. If the service fills a need, makes something simpiler, or is entertaining people will continue to use it. There are so many web sites/services that keep popping up, most people will use them for a short while when they are first discovered either by media, linking, blog article, etc. If the site doesn\'t have meet the need of the new user, the user will go somewere else which does. There are so many new sites pooping up that a person doesn\'t have time to use them all, or the site doesn\'t stand out enough to be remembered over a longer term by the user.<br><br>Remember Protopage? I would like to see how many people are still using it compared to when it was first discovered and covered by blogs, podcasts, etc. That\'s a site that really appeals to the tech crowd, and I bet the majority barely remember it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652132">\
	 <div id="dsq-comment-header-9652132" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652132" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652132">LayZ</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652132" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652132" class="dsq-comment-message">Scoble, I\'m impressed.  Some lucidity for once.  Great post that asks a lot of insightful questions.  Isn\'t a bit ironic, however, that you work for company smack in the middle of this supposed bubble?  What are PodTech\'s plans to avoid the bubble?  What happens if the ad revenue never materializes?  Will the quality of your content be something good enough people will actually PAY for?  Do you plan to have PodTech lead by example?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652133">\
	 <div id="dsq-comment-header-9652133" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652133" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652133" href="http://susanmernit.blogspot.com/" target="_blank" rel="nofollow">susan mernit</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652133" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652133" class="dsq-comment-message">Robert, check out my post from August 24th--"Blogging outside the silicon valley bubble--my rant on houw to get there."<br><a href="http://susanmernit.blogspot.com/2006/08/blogging-outside-silicon-valley-bubble_24.html" rel="nofollow">http://susanmernit.blogspot.com/2006/08/bloggin...</a><br><br>Similar topics<br>Best,<br>Susan</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652131">\
	 <div id="dsq-comment-header-9652131" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652131" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652131" href="http://www.rocketboom.com/" target="_blank" rel="nofollow">Drew</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652131" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652131" class="dsq-comment-message">I would suggest that while we are transitioning over the next few years, most of the mainstream does not use the computer to the extent we all do. In other-words, beyond scouring for a picture of Suri, the MSM audiences are not out there yet taking action.<br><br>I can\'t tell you how amazed I am regularly when people I talk to have never heard of BoingBoing.<br><br>Though this is ok. Froth is made up of lots of little bubbles. You don\'t really need VC money to make it and you don\'t need for it to grow into a million dollar business, ever.<br><br>So there is no need to bring it all together into Google and Yahoo, you just need an original idea that people respond to.<br><br>If I didn\'t have greater aspirations, I could run Rocketboom off of t-shirt sales.<br><br>Micro-payment is the new macro.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652128">\
	 <div id="dsq-comment-header-9652128" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652128" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652128" href="http://podtech.wordpress.com/" target="_blank" rel="nofollow">John Furrier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652128" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652128" class="dsq-comment-message">Key to success is to look past the bubble hype. Of course we are in a bubble there is a massive shift in the economics and wealth of the \'netarchitecture\' going on right now.<br><br>There will always be ad revenue in user or audience based models.  The issue is that the ad model doesn\'t and will not translate from what it is today to the new market environment that is developing.<br><br>Keys to avoid the bubble is to enter the market with a clear sustainable plan: build a great team and execute a business/revenue model that generates cash flow and market position.   From that point on competing on value will determine who stays around.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652129">\
	 <div id="dsq-comment-header-9652129" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652129" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652129" href="http://lifeisaventure.wordpress.com/" target="_blank" rel="nofollow">Life A Venture</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652129" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652129" class="dsq-comment-message">The business model is somewhat proved for web advertsing: if one can get a lot of traffic with reasonable cost, you can make money. The baseline cost for most web-based companies increase very slowly vs traffic. The difficult part is to generate traffic (without costing too much).<br><br>I have compiled a list of websites and their effective CPMs (monthly revenue vs pageviews) based on public information.<br><br><a href="http://lifeisaventure.wordpress.com/2006/08/28/how-much-money-do-you-generate-per-pageview/" rel="nofollow">http://lifeisaventure.wordpress.com/2006/08/28/...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652130">\
	 <div id="dsq-comment-header-9652130" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652130" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652130" href="http://plexusity.wordpress.com/" target="_blank" rel="nofollow">plexusity</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652130" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652130" class="dsq-comment-message">I do love to read your big picture take on all things soap related, Robert. Listen why don\'t you tell me what in web 2.0 (apps, ideas, services....)corporations can benefit from--Fortune 500 to less that 10 employees. A laundry list please--I want YOUR take. Let\'s get real with no froth and bring the worthy developers and ideologues to the stage, to the table, this May--face-to-face with real customers with deep wallets eager to get it and use it. I wait.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652125">\
	 <div id="dsq-comment-header-9652125" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652125" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652125" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652125" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652125" class="dsq-comment-message">LayZ: we already have, gasp, real revenues and real clients. They are on the "Corporate" bar on our home page. So, no need to worry about us. At least not short term. Now, if the entire world blows up again like it did in March 2000 and everyone cuts their budgets way back? Then we\'ll definitely feel pain. But I\'m working on diversifying our revenue streams outside the tech world so that we can ride that out.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652126">\
	 <div id="dsq-comment-header-9652126" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652126" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652126" href="http://blog.brotherhoodofthebean.com/feed/" target="_blank" rel="nofollow">Brotherhood of the Bean</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652126" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652126" class="dsq-comment-message">Great foam on a cappuccino can last a long long time.  Poor foam won\'t sustain through the length of the cup.      I don\'t think its so much about escaping the froth, but sustaining through it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652124">\
	 <div id="dsq-comment-header-9652124" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652124" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652124" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652124" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652124" class="dsq-comment-message">Brotherhood: the problem is that if your cappuccino has only froth and no cappuccino then it isn\'t a good cup of joe.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652123">\
	 <div id="dsq-comment-header-9652123" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652123" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652123" href="http://blogs.smugmug.com/onethumb" target="_blank" rel="nofollow">Don MacAskill</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652123" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652123" class="dsq-comment-message">Robert, in your update, you talk about the Paul Graham\'s approach to "worry about building audience first" and that "that’s actually a good point of view to take."<br><br>Doesn\'t that sound like the last few internet bubbles in the Valley?  :)<br><br>I still maintain that "grow big and" [insert GET ACQUIRED BY GOOGLE or SLAP GOOGLE ADS ON MY PAGES] is still a poor business model (if you can call it that).<br><br>Let\'s not forget that Yahoo had "won" because their portal and search got more eyeballs than anyone.  Only what happened?  Someone with better innovation and execution (Google) came along and suddenly that vast audience switched.  Why?  Because the product was better.<br><br>Audiences are fickle and they vanish.  Better businesses, with better products, can come along and take them away.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652122">\
	 <div id="dsq-comment-header-9652122" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652122" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652122" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652122" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652122" class="dsq-comment-message">Don: I don\'t think that many of the 1999 businesses actually had audiences of any real size or depth. And, if they did they certainly didn\'t have a way to monetize those audiences. Today we do.<br><br>But, yeah, you\'re right. I\'d rather own Printing for Less than Digg, for instance. But that\'s just me.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652157">\
	 <div id="dsq-comment-header-9652157" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652157" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652157" href="http://plexusity.wordpress.com/" target="_blank" rel="nofollow">marie germain</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652157" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652157" class="dsq-comment-message">Yes Don, some folks improve on others but why are you techies (I am not one) persistently fixated on who leads and who\'s got something better at the expense of another. There is so much room in the sandbox. Yahoo and Google are good. Microsoft and Apple are good. Tehnorati and Wiki are good. And not to tout oligopolies there\'s plenty of room for also rans. There is such an appetite. But I will tell you this: you have to reach the mainstream to succeed. You must end the esoteric edge. Adopt the user POV. At our web 2.0 conference (corproate audience) this May we will limit techie vitriol--for everyone\'s beneficial engagement and to actually galvanize them. It will be a lovefest not a hatefest so common in tech blogs. You see it\'s about resonating with one user. We cause self-destruction somewhat like the Republicans and Democrats cause America to be seen in the wrong light around the world day-by-day in their "conversations". Let\'s call on the carpet those who do wrong--this is the power of our beneficial transparency. But let\'s encourage everyone too. I am fan of every lab, every creator--they will empower our future. Remember almost all including Bill G. and Sergei B. started virtually alone. I don\'t think Sergei can even accept his own accomplishments in his persistent reference to "luck" for his success. C\'mon guys let\'s celebrate and let\'s reach out to the non-techs, the masses of users yet to be born. Where your riches are. Graham is right to the extent that you have to give audiences something they want. Contrary to some bloggers cynical view it is not pornography and free videos they seek. Who have they been talking to? People want ease, speed, knowledge, help, functionality, ubiquity, pleasure... C\'mon. Let\'s get real. Navel gazing won\'t generate revenue. Applaud Paul for believing in "three guys" and putting money behind them. There\'s plenty of room for all.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652158">\
	 <div id="dsq-comment-header-9652158" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652158" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652158" href="http://mickeleh.blogspot.com/" target="_blank" rel="nofollow">Michael Markman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652158" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652158" class="dsq-comment-message">This class is worth attending. Robert posed THE question--and because his blog powers remain strong he induced wise participation from the commentarium. Thanks all. Keep it coming. I\'m taking notes.<br><br>What\'s a product? Something that attracts customers. What\'s a good show? Something that puts asses in seats. What\'s a leader? Someone with followers. What\'s a good web 2.0 service? Something that attracts clicks.<br><br>At the end of the day, it isn\'t the inventers, entrepreneurs or VCs who can define success: it\'s the audience. They either click or they don\'t.<br><br>So what\'s the recipe for success? I don\'t have it, but I can tell you where to look<br><br>An unsolved problem is a product opportunity. A customer pain-point is a product opportunity. But a solved problem is also an opportunity--provided you can offer a substantially easier, faster, and/or cheaper solution.<br><br>When you play the feature war on a small scale, the best you an hope for is to trade some of your audience with your competitors. But the big win is not to seduce customers away from competitors (though that\'s always fun), the big win is to pull non-customers into the circle.<br><br>Anyone who wants to break out of the froth can find  hugely valuable clues and tools in "Blue Ocean Strategy" by W. Chan Kim and Renée Mauborgne. Their subtitle captures their premise very well. "How to Create Uncontested Market Space and Make the Competition Irrelevant."<br><br>Enough with thinking outside the box. "Blue Ocean Strategy" can teach you how to think outside the bubble.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652159">\
	 <div id="dsq-comment-header-9652159" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652159" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652159">Jack</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652159" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652159" class="dsq-comment-message">It\'s not just a fantasy world 2.0 bubble - the housing one is comming to the Valley as well...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652178">\
	 <div id="dsq-comment-header-9652178" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652178" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652178" href="http://blogs.smugmug.com/onethumb" target="_blank" rel="nofollow">Don MacAskill</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652178" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652178" class="dsq-comment-message">@marie germain:<br><br>I think you\'re misunderstanding me.  If you read my linked blog entries and such, you\'ll find that I\'m an advocate of lots of competition.  I\'m a Flickr competitor, in some sense of the word, yet I blogged about \'Flickr doesn\'t suck\'.<br><br>I could care less who has more market share than I do, because I don\'t want to be the market leader.  It\'s part of our corporate strategy to NOT go for market share but rather for ecstatic customers who drive profit.  I\'m sure we could have offered free accounts away and grown like a rocket, too (we were on the scene years before Flickr), but that wasn\'t our target.<br><br>Ask anyone who knows me and my company - we\'re fixated on the customer experience and customer service, not on who\'s in the lead.  I have to have ready answers, because everyone I meet says "But how are you different than Flickr?", but that\'s life.  :)<br><br>Don</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652175">\
	 <div id="dsq-comment-header-9652175" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652175" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652175" href="http://tenyearsofpics.blogspot.com/" target="_blank" rel="nofollow">Patrick Dodds</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652175" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652175" class="dsq-comment-message">Success in web 2.0? Both the idea AND the execution make you smile. Often you get the first but not the second (Riya springs to mind). Wikipedia has both (though is it 1.0 or 2.0?), as does Flickr.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652189">\
	 <div id="dsq-comment-header-9652189" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652189" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652189" href="http://plexusity.wordpress.com/" target="_blank" rel="nofollow">marie germain</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652189" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652189" class="dsq-comment-message">Hey Don: Nice web services powered by Smugmug. I promise to look into it more. Sounds like you have great service there. Hope you find ways to get that to the masses. It\'s nice that it\'s not an advertising model. People are slowly learning that great things are worth $$ from the web--not just off the shelf. I cannot tell you how behind the photo shops are!! I have a client (a big retail chain--I am a markerter) that still has a guy hiding in a backroom printing photos at a snail\'s pace for a price per photo that is not competitive--and the customers have to doddle in the mall for an hour+ while they wait. SmugMug is a print service killer. Everybody these days in the photo print biz: grocers, Walmart, pharmacies. It is all so archaic. You just have to induce trial. I will celebrate you and SmugMug too.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652174">\
	 <div id="dsq-comment-header-9652174" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652174" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652174" href="http://joshwais.blogspot.com/" target="_blank" rel="nofollow">Josh Wais</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652174" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652174" class="dsq-comment-message">What a great post.  What a great topic.  I couldn\'t agree more. And on top of that, I like the way the thought\'s put.  The thing is, I think, that there\'s so much pathos involved, so much money tied up and ultimately, by those who are really in it, so much uncertainty, that the issue\'s hard to get to.  Hopefully this is only one of many posts like this, by Robert and the rest of the blogosphere.  I do think it\'s coming.  The anti-froth. The see-it-as-it-is kinda folks and consequently their posts and the repercussions of them.  Well, maybe that’s just wishful thinking, but we’ll see.<br>The most important thing I gather from your point, and what I’ve been thinking about in much the same way is the concept of perspective.  For example, the now famous 53,651 Kopelman post is a great example of how even while being a VC but just out of the Valley one can get a more accurate perspective (he’s from Philly).<br>Another example, now that I think about it, is my own.  I follow the industry closely, very closely, I know my startups, my big players and the top bloggers, but I still have the luxury of seeing it from the outside.  I’m in high school still.  Yep, I said it, high school.  I guess I have a way different perspective for that matter then.  And well, I couldn’t agree with you more, like I said.  I love this stuff, I really do, but I want more and I want it better and I think it’s going to take some pretty major changes.  Not to self promote, but I just wrote a post on this myself at <a href="http://joshwais.blogspot.com" rel="nofollow">joshwais.blogspot.com</a> .</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652172">\
	 <div id="dsq-comment-header-9652172" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652172" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652172" href="http://joshwais.blogspot.com/" target="_blank" rel="nofollow">Josh Wais</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652172" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652172" class="dsq-comment-message">Oops, I of course meant to say <a href="http://joshwais.blogspot.com/" rel="nofollow">joshwais.blogspot.com</a>.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652171">\
	 <div id="dsq-comment-header-9652171" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652171" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652171" href="http://www.mediangler.com/" target="_blank" rel="nofollow">haydn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652171" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652171" class="dsq-comment-message">Well - I\'m not in the valley and I\'ve been saying for some time my website stats reflect far more the influence of start pages than search engines. So me no valley boy but life\'s a changing - just that netvibes is a techcrunch boost so not exactly outside the bubble.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652160">\
	 <div id="dsq-comment-header-9652160" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652160" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652160" href="http://juniorgolfamerica.blogspot.com/" target="_blank" rel="nofollow">Greg Martin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652160" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652160" class="dsq-comment-message">In your article, you mention that people "outside the bubble" just know how to "search" when they are looking for something.  I consider myself to be very technically savvy.  However, I must admit that "search" is my main means of finding things on the web as well.  For those of us in the "great unwashed" outside the bubble, what should we be doing besides using Google or Yahoo?<br><br>Thanks for your help.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652180">\
	 <div id="dsq-comment-header-9652180" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652180" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652180" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652180" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652180" class="dsq-comment-message">Greg: if you\'re a geek you probably can name a few other Web sites as well. What\'s your favorite travel site? Mine isn\'t Google. What\'s your favorite real estate site? Mine isn\'t Google. What\'s your favorite mobile site? Mine isn\'t Google. What\'s your favorite news site? Mine isn\'t Google\'s search engine. What\'s your favorite blog? Mine isn\'t on Google.<br><br>People outside of the tech world usually have trouble naming all these things. Then I watch how they use the computer and they mainly use the main search page they got used to.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652161">\
	 <div id="dsq-comment-header-9652161" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652161" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652161">giafly</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652161" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652161" class="dsq-comment-message">Q. insiders tell me that one of the top search terms over at Yahoo is actually “Google.” And one of the top search terms at Google is “Yahoo.” Why is that?<br><br>A. One reason is because ordinary people know it\'s "Yahoo!" but they don\'t know whether it\'s dotNET, dotCOM, dotORG, dotGOV or something else entirely. Worse, with some sites, if you guess the extension wrong you get a NSFW squatter page. So it\'s easier to search.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652156">\
	 <div id="dsq-comment-header-9652156" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652156" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9652156">rcjordan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652156" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652156" class="dsq-comment-message">&gt;I wish we had a conference on “how to find customers outside of the tech bubble?<br><br>robert, you\'re invited to seoroadshow (this is a test, see if you can find the details all by yourself, hhh)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652155">\
	 <div id="dsq-comment-header-9652155" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652155" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652155" href="http://dianev.com/" target="_blank" rel="nofollow">DianeV</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652155" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652155" class="dsq-comment-message">&gt; Q. insiders tell me that one of the top search terms over at Yahoo is actually “Google.” And one of the top search terms at Google is “Yahoo.” Why is that?<br><br>As a long time web designer/SEO/marketer who talks to non-Web people on a constant basis, I\'d say that this statistic is due to the fact that most people don\'t understand how browsers work (heck, they don\'t even know what a "browser" is and have never heard the word).  Either their browser\'s home page is a search engine page and all they know is how to *search* for something (e.g., "Google" at Yahoo) or they simply don\'t know that they can type a domain name into their browser address bar -- and this goes for most people, be they living in remote mountain areas or CEOs of billion-dollar corporations. What you\'ll hear is this:<br><br>Me:  go to my website, <a href="http://blahblah.com" rel="nofollow">blahblah.com</a><br>Them:  Don\'t worry -- I\'ll find it!<br><br>Find it? What\'s to find?  But that statement is your first clue, and the reason why Web marketing *must* take the search engines into consideration.  It\'s not like paper advertising, which you must somehow place into the hands of the consumer.  Nor like TV, which is another medium altogether. Different medium; different delivery solution.<br><br>As to the other questions here, I\'d say that sorting out a business plan comes immediately after any "bright idea" ... that is, how you\'ll make money from it.  Yes, it\'s exciting to build an audience.  Even more exciting is making a living from something you like/love.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652173">\
	 <div id="dsq-comment-header-9652173" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652173" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652173" href="http://blog.jesuitrangerfootball.com/" target="_blank" rel="nofollow">Greg Martin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652173" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652173" class="dsq-comment-message">Ok, that makes some sense.  Yes, there are lots of sites I use to look for specific items.  However, I do spend a great deal of time at Google looking up things that I don\'t already have committed to memory.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652165">\
	 <div id="dsq-comment-header-9652165" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652165" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652165" href="http://shannonclark.wordpress.com/" target="_blank" rel="nofollow">shannonclark</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652165" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652165" class="dsq-comment-message">Robert,<br><br>I\'ve written a lengthy response inspired by this post and the comments here. Take a look at <a href="http://blogs.jigzaw.com/?p=76" rel="nofollow">http://blogs.jigzaw.com/?p=76</a><br><br>Shannon</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652154">\
	 <div id="dsq-comment-header-9652154" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652154" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652154" href="http://www.sparkleroad.com/" target="_blank" rel="nofollow">Sparkle Road</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652154" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652154" class="dsq-comment-message">isnt the froth the best bit?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652135">\
	 <div id="dsq-comment-header-9652135" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652135" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652135" href="http://launchcorp.com/" target="_blank" rel="nofollow">Stephanie H.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652135" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652135" class="dsq-comment-message">I am working with a professional online IT community that\'s been in business since 98 and have been looking for other successful, professional communities in other verticals. Know of any?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9652197">\
	 <div id="dsq-comment-header-9652197" class="dsq-comment-header">\
	 <cite id="dsq-cite-9652197" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9652197" href="http://www.topmeds20.org/tramadol.htm" target="_blank" rel="nofollow">Sergesnets</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9652197" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9652197" class="dsq-comment-message">Only for community scobleizer.com! HOT!<br>1.[URL=http://www.topmeds20.org/tramadol.htm]US Doctors &amp; Pharmacy. Great Service and Prices. VISA-AMX-DISCOVER-COD-Mastercard FREE FEDEX SHIPPING! SATURDAY DELIVERY(where available)orders in by 3pm ship same day[/URL]<br>2.[URL=http://www.topmeds20.org/soma.htm]Accepting Credit cards or C.O.D. Soma  Free FedEx shipping . FDA approved Medications &amp; U.S. Licensed Pharmacists[/URL]</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=getting_outside_the_frothy_bubble&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);
			}
		}
	});
}

})();




