




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": {"ac927748ef7a3db5e7e7b7fae5b26ad3": {"username": "Melanie Taylor", "tumblr": "", "display_name": "Melanie Taylor", "url": "http://disqus.com/guest/ac927748ef7a3db5e7e7b7fae5b26ad3/", "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": ""}, "345f13f2a66872a34d7c7c32d958d5d5": {"username": "fahad", "tumblr": "", "display_name": "fahad", "url": "http://disqus.com/guest/345f13f2a66872a34d7c7c32d958d5d5/", "registered": false, "linkedin": "", "blog": "http://www.typeinternational.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": ""}, "a71ba4d31bb1fe3bb312ecbc44fea0ce": {"username": "Rodney Rumford", "tumblr": "", "display_name": "Rodney Rumford", "url": "http://disqus.com/guest/a71ba4d31bb1fe3bb312ecbc44fea0ce/", "registered": false, "linkedin": "", "blog": "http://blog.leveragedpromotion.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/163/8635/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "834c0f08fd85903a2dc52eda1dc59a58": {"username": "bubba", "tumblr": "", "display_name": "bubba", "url": "http://disqus.com/guest/834c0f08fd85903a2dc52eda1dc59a58/", "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/", "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": ""}, "39dff09620ec1868e474199beff30189": {"username": "Mark MacLeod", "tumblr": "", "display_name": "Mark MacLeod", "url": "http://disqus.com/guest/39dff09620ec1868e474199beff30189/", "registered": false, "linkedin": "", "blog": "http://www.markmacleod.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": ""}, "ec59866f8e583487d6e4aa57c5cf2d29": {"username": "Ted Shelton", "tumblr": "", "display_name": "Ted Shelton", "url": "http://disqus.com/guest/ec59866f8e583487d6e4aa57c5cf2d29/", "registered": false, "linkedin": "", "blog": "http://personalbee.blogs.com/ted", "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": ""}, "74aec0b2a8bbbf4e18377b7b3f8c268c": {"username": "weiyen", "tumblr": "", "display_name": "weiyen", "url": "http://disqus.com/guest/74aec0b2a8bbbf4e18377b7b3f8c268c/", "registered": false, "linkedin": "", "blog": "http://mindlessramblings.hopto.org/", "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": ""}, "7d738f188ee70496d1a07cc31d422dfb": {"username": "Joe Public", "tumblr": "", "display_name": "Joe Public", "url": "http://disqus.com/guest/7d738f188ee70496d1a07cc31d422dfb/", "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": ""}, "5d21d62d95d18914fa9edd9ff888fb8c": {"username": "solomonrex", "tumblr": "", "display_name": "solomonrex", "url": "http://disqus.com/guest/5d21d62d95d18914fa9edd9ff888fb8c/", "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": ""}, "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": ""}, "33ae983c72db97d93df45a6290d3f436": {"username": "Ozh", "tumblr": "", "display_name": "Ozh", "url": "http://disqus.com/guest/33ae983c72db97d93df45a6290d3f436/", "registered": false, "linkedin": "", "blog": "http://planetozh.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/6/2485/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c8fa8911495eba98f99c5317e6869707": {"username": "Kate_L", "tumblr": "", "display_name": "Kate_L", "url": "http://disqus.com/guest/c8fa8911495eba98f99c5317e6869707/", "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": ""}, "b14e8402d60ae16eb3327eab2b2272ad": {"username": "Dan", "tumblr": "", "display_name": "Dan", "url": "http://disqus.com/guest/b14e8402d60ae16eb3327eab2b2272ad/", "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": ""}, "654af963c7702db75a8f477951ccabc1": {"username": "freitasm", "tumblr": "", "display_name": "freitasm", "url": "http://disqus.com/guest/654af963c7702db75a8f477951ccabc1/", "registered": false, "linkedin": "", "blog": "http://freitasm.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": ""}, "5546dd483d601293c5ab913071bdcabc": {"username": "Stefan Constantinescu", "tumblr": "", "display_name": "Stefan Constantinescu", "url": "http://disqus.com/guest/5546dd483d601293c5ab913071bdcabc/", "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": ""}, "1c0610f213c3b19836dff5d30f47426e": {"username": "Donal Reddington", "tumblr": "", "display_name": "Donal Reddington", "url": "http://disqus.com/guest/1c0610f213c3b19836dff5d30f47426e/", "registered": false, "linkedin": "", "blog": "http://www.madeforone.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": ""}, "d5a73f838de9046d3ade44a569c41fd3": {"username": "todd cochrane", "tumblr": "", "display_name": "todd cochrane", "url": "http://disqus.com/guest/d5a73f838de9046d3ade44a569c41fd3/", "registered": false, "linkedin": "", "blog": "http://www.geeknewscentral.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": ""}, "3f513e2cf340de447da7d12d8497d7bc": {"username": "Richard Brownell", "tumblr": "", "display_name": "Richard Brownell", "url": "http://disqus.com/guest/3f513e2cf340de447da7d12d8497d7bc/", "registered": false, "linkedin": "", "blog": "http://www.richbrownell.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": ""}, "d7bc077cffd8180bef8ab7c2aff37541": {"username": "James Monroe", "tumblr": "", "display_name": "James Monroe", "url": "http://disqus.com/guest/d7bc077cffd8180bef8ab7c2aff37541/", "registered": false, "linkedin": "", "blog": "http://rss.monroe-kc.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": ""}, "38a5f5c7d59e65c9b9749f663e20e3af": {"username": "Scott Royall", "tumblr": "", "display_name": "Scott Royall", "url": "http://disqus.com/guest/38a5f5c7d59e65c9b9749f663e20e3af/", "registered": false, "linkedin": "", "blog": "http://www.conchbbs.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": ""}, "897daf2d24886f328387982c3d4f9149": {"username": "Amy Gahran", "tumblr": "", "display_name": "Amy Gahran", "url": "http://disqus.com/guest/897daf2d24886f328387982c3d4f9149/", "registered": false, "linkedin": "", "blog": "http://contentious.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": ""}, "9c075fb83b3bb8a61ec3cf9ad3896d29": {"username": "Kevin", "tumblr": "", "display_name": "Kevin", "url": "http://disqus.com/guest/9c075fb83b3bb8a61ec3cf9ad3896d29/", "registered": false, "linkedin": "", "blog": "http://kcmarshall.typepad.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "da37bc7a32119e0fc8e69ffe240ced9d": {"username": "Danny Sullivan", "tumblr": "", "display_name": "Danny Sullivan", "url": "http://disqus.com/guest/da37bc7a32119e0fc8e69ffe240ced9d/", "registered": false, "linkedin": "", "blog": "http://dannysullivan.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/26134/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f819599bbed80f48013d5acad012a9c3": {"username": "Helder", "tumblr": "", "display_name": "Helder", "url": "http://disqus.com/guest/f819599bbed80f48013d5acad012a9c3/", "registered": false, "linkedin": "", "blog": "http://obvio171.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/167/5006/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "de98c1924472930f24b84f40187c3b86": {"username": "TDavid", "tumblr": "", "display_name": "TDavid", "url": "http://disqus.com/guest/de98c1924472930f24b84f40187c3b86/", "registered": false, "linkedin": "", "blog": "http://tdavid.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/22/5705/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "135e0fb484b66257dec3319ce2e04ce6": {"username": "Nicholas Quixote", "tumblr": "", "display_name": "Nicholas Quixote", "url": "http://disqus.com/guest/135e0fb484b66257dec3319ce2e04ce6/", "registered": false, "linkedin": "", "blog": "http://www.rabbitbites.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": ""}, "f00899facd99ad57adf230d9faed6708": {"username": "amorson", "tumblr": "", "display_name": "amorson", "url": "http://disqus.com/guest/f00899facd99ad57adf230d9faed6708/", "registered": false, "linkedin": "", "blog": "http://www.techmount.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": ""}, "c195df69ec47dea743937a67725eabdf": {"username": "John MacMillan", "tumblr": "", "display_name": "John MacMillan", "url": "http://disqus.com/guest/c195df69ec47dea743937a67725eabdf/", "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": ""}, "b9ac9cdb9d77dd95758a15d77cc5a879": {"username": "Mike", "tumblr": "", "display_name": "Mike", "url": "http://disqus.com/guest/b9ac9cdb9d77dd95758a15d77cc5a879/", "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": ""}, "02ac79b9b2373a4788ae9311d19c4fb1": {"username": "Ethan", "tumblr": "", "display_name": "Ethan", "url": "http://disqus.com/guest/02ac79b9b2373a4788ae9311d19c4fb1/", "registered": false, "linkedin": "", "blog": "http://www.thevisionthing.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": ""}, "07f097b50d29c832a50eb8bcf2ebfb69": {"username": "claus", "tumblr": "", "display_name": "claus", "url": "http://disqus.com/guest/07f097b50d29c832a50eb8bcf2ebfb69/", "registered": false, "linkedin": "", "blog": "http://clsc.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "db7a2bfd1e2205c907881a430f6bec05": {"username": "Benjamin Berube", "tumblr": "", "display_name": "Benjamin Berube", "url": "http://disqus.com/guest/db7a2bfd1e2205c907881a430f6bec05/", "registered": false, "linkedin": "", "blog": "http://www.rsscache.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": ""}, "8bc6a4f82031491d90ce7d3fe3d516c7": {"username": "Rich", "tumblr": "", "display_name": "Rich", "url": "http://disqus.com/guest/8bc6a4f82031491d90ce7d3fe3d516c7/", "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": ""}, "b79bb48c9d6bf31a1fe2b91294939f1c": {"username": "Jon", "tumblr": "", "display_name": "Jon", "url": "http://disqus.com/guest/b79bb48c9d6bf31a1fe2b91294939f1c/", "registered": false, "linkedin": "", "blog": "http://www.posthegemony.org/", "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": ""}, "dd77f0d5dcfb054b7c3085c083e56aae": {"username": "Dmad", "tumblr": "", "display_name": "Dmad", "url": "http://disqus.com/guest/dd77f0d5dcfb054b7c3085c083e56aae/", "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": ""}, "6fe984f69306ee8ac6c96b9ab5423a25": {"username": "Mark Wilson", "tumblr": "", "display_name": "Mark Wilson", "url": "http://disqus.com/guest/6fe984f69306ee8ac6c96b9ab5423a25/", "registered": false, "linkedin": "", "blog": "http://reblogger.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": ""}, "8198ab67cb2c2e560f1f84e30f29f731": {"username": "raj", "tumblr": "", "display_name": "raj", "url": "http://disqus.com/guest/8198ab67cb2c2e560f1f84e30f29f731/", "registered": false, "linkedin": "", "blog": "http://rsscases.marketingstudies.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fc9eab3b2b2c3199a193e8c65c3aae1b": {"username": "vinnie mirchandani", "tumblr": "", "display_name": "vinnie mirchandani", "url": "http://disqus.com/guest/fc9eab3b2b2c3199a193e8c65c3aae1b/", "registered": false, "linkedin": "", "blog": "http://www.dealarchitect.typepad.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "a323c38a8821734490518fe8331afae7": {"username": "SimonD", "tumblr": "", "display_name": "SimonD", "url": "http://disqus.com/guest/a323c38a8821734490518fe8331afae7/", "registered": false, "linkedin": "", "blog": "http://simondickson.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/189/1908/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "73dfb1eb77844f0dbae599ff9b81e78f": {"username": "Nick Mudge", "tumblr": "", "display_name": "Nick Mudge", "url": "http://disqus.com/guest/73dfb1eb77844f0dbae599ff9b81e78f/", "registered": false, "linkedin": "", "blog": "http://webdescript.com/blog/mudge/", "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": ""}, "abb108463f1e2f666ccf524795c25ce3": {"username": "file hosting", "tumblr": "", "display_name": "file hosting", "url": "http://disqus.com/guest/abb108463f1e2f666ccf524795c25ce3/", "registered": false, "linkedin": "", "blog": "http://www.youpload.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": ""}, "4063cd747e5b142eb744e4a83364dae5": {"username": "Lee", "tumblr": "", "display_name": "Lee", "url": "http://disqus.com/guest/4063cd747e5b142eb744e4a83364dae5/", "registered": false, "linkedin": "", "blog": "http://blog.cafenation.com.au/", "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": ""}, "dshah": {"username": "dshah", "tumblr": "", "display_name": "Dharmesh Shah", "url": "http://disqus.com/dshah/", "registered": true, "linkedin": "in/dharmesh", "blog": "http://www.HubSpot.com", "remote_domain": null, "points": 4, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/22768/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e6bf5bc24d9e7f1e20f21cb1349a1f45": {"username": "Scott M. Stolz", "tumblr": "", "display_name": "Scott M. Stolz", "url": "http://disqus.com/guest/e6bf5bc24d9e7f1e20f21cb1349a1f45/", "registered": false, "linkedin": "", "blog": "http://www.wistex.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": ""}, "490d926d48cdd8ab8349fe6206c02da4": {"username": "Jeremy Wright", "tumblr": "", "display_name": "Jeremy Wright", "url": "http://disqus.com/guest/490d926d48cdd8ab8349fe6206c02da4/", "registered": false, "linkedin": "", "blog": "http://abundance.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/16/9164/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "830f47b741717496a039ad3f0c540266": {"username": "Jeff", "tumblr": "", "display_name": "Jeff", "url": "http://disqus.com/guest/830f47b741717496a039ad3f0c540266/", "registered": false, "linkedin": "", "blog": "http://www.campusfish.com/Jeff", "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": ""}, "fd1df7dfb6cb958500b8ed9ab95d94e8": {"username": "Aaron Pratt", "tumblr": "", "display_name": "Aaron Pratt", "url": "http://disqus.com/guest/fd1df7dfb6cb958500b8ed9ab95d94e8/", "registered": false, "linkedin": "", "blog": "http://www.seobuzzbox.com/duplicate-content-google.html", "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": ""}, "2591c43c19cfd61eee304393f115f044": {"username": "FrancisQ", "tumblr": "", "display_name": "FrancisQ", "url": "http://disqus.com/guest/2591c43c19cfd61eee304393f115f044/", "registered": false, "linkedin": "", "blog": "http://www.albinoblacksheep.com/flash/youare.swf", "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": ""}, "23b524e48f5a9342f3d6d250578d409e": {"username": "Maurice", "tumblr": "", "display_name": "Maurice", "url": "http://disqus.com/guest/23b524e48f5a9342f3d6d250578d409e/", "registered": false, "linkedin": "", "blog": "http://www.bluedoglimited.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": ""}, "7594126d924969f4b8f184da7fdf8524": {"username": "Mike Drips", "tumblr": "", "display_name": "Mike Drips", "url": "http://disqus.com/guest/7594126d924969f4b8f184da7fdf8524/", "registered": false, "linkedin": "", "blog": "http://forevervoyaging.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": ""}, "8259c0af429cf46c50037c397d3ffe7e": {"username": "Stephen", "tumblr": "", "display_name": "Stephen", "url": "http://disqus.com/guest/8259c0af429cf46c50037c397d3ffe7e/", "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": ""}, "406e0c5676030f89b91f8689cdf2a8ed": {"username": "Jack Brewster", "tumblr": "", "display_name": "Jack Brewster", "url": "http://disqus.com/guest/406e0c5676030f89b91f8689cdf2a8ed/", "registered": false, "linkedin": "", "blog": "http://www.newsgator.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": ""}, "9bbed6b579dfa11d0dd9083ef6036f68": {"username": "Darren", "tumblr": "", "display_name": "Darren", "url": "http://disqus.com/guest/9bbed6b579dfa11d0dd9083ef6036f68/", "registered": false, "linkedin": "", "blog": "http://www.problogger.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/8/1960/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4361e043e9de8e0772d842f07b9237f6": {"username": "Hugh Fraser", "tumblr": "", "display_name": "Hugh Fraser", "url": "http://disqus.com/guest/4361e043e9de8e0772d842f07b9237f6/", "registered": false, "linkedin": "", "blog": "http://www.blog-relations.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": ""}, "85da024354222e13b52d657e75087f52": {"username": "Rodney Buike", "tumblr": "", "display_name": "Rodney Buike", "url": "http://disqus.com/guest/85da024354222e13b52d657e75087f52/", "registered": false, "linkedin": "", "blog": "http://thelazyadmin.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": ""}, "83e226e176a7a3e8266a385617666a2a": {"username": "jaseone", "tumblr": "", "display_name": "jaseone", "url": "http://disqus.com/guest/83e226e176a7a3e8266a385617666a2a/", "registered": false, "linkedin": "", "blog": "http://jaseone.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": ""}, "k1m": {"username": "k1m", "tumblr": "", "display_name": "keyvan", "url": "http://disqus.com/k1m/", "registered": true, "linkedin": "", "blog": "http://fivefilters.org/pdf-newspaper/", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2e896a0ca5c7b1a889ec6528507f4432": {"username": "Tim Child", "tumblr": "", "display_name": "Tim Child", "url": "http://disqus.com/guest/2e896a0ca5c7b1a889ec6528507f4432/", "registered": false, "linkedin": "", "blog": "http://blog.timc3.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": ""}}, "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_08:34:12", "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": {"9630720": {"up_voted": false, "ip": "", "has_replies": false, "message": "i agree whole heartedly with full feeds. What i don;t understand is that on the scobleizer rss feed in bloglines its still showing partial even though i set it to full....:S", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_14:29:25", "killed": false, "user_key": "74aec0b2a8bbbf4e18377b7b3f8c268c", "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}, "9630721": {"up_voted": false, "ip": "", "has_replies": false, "message": "weiyen: what news reader are you using?<br><br>Jeremy: when I linked to <a href=\"http://Podtech.net\" rel=\"nofollow\">Podtech.net</a> I sent him more than 10,000 unique viewers (according to him). So, at least some of my links pull a sizeable audience.<br><br>Christopher: I don't read memetrackers in RSS. I visit a handful of pages in Web browsers cause they change too often.<br><br>Also, I'm not saying you ONLY have to provide full text feeds. I'm perfectly happy if a content owner provides both full text and partial text feeds.<br><br>Mike: some feeds I want partial, some I want full (most I want full, though, even on my smart phone).<br><br>Yeah, I gotta use the FetchLinks product. I keep forgetting to load that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_14:51:19", "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}, "9630722": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi, Robert<br><br>I respect your perspective, but I'd suggest that your personal preference for full-text feed is just that -- one person's preference; not a sound basis for blanket advice to online publishers.<br><br>In my case, I've chosen not to offer a full-text feed for <a href=\"http://Contentious.com\" rel=\"nofollow\">Contentious.com</a> and <a href=\"http://RightConversation.com\" rel=\"nofollow\">RightConversation.com</a> for several reasons. These are:<br><br>1) Partial feeds (and e-mail alerts based on those feeds) are the only way I  can get clickthrough information about which of my articles are most popular -- one of my most valuable tools for planning and refining my content strategy.<br><br>2) Like you, I often write at a length which is unwieldy for common feed reader tools and services. I don't think telling people to \"get a better feed reader\" is very constructive for building a relationship with your audience.<br><br>3) My content already gets stolen and plagiarized often. I do consider that a problem, and I believe a full-text feed would only exacerbate that problem.<br><br>4) One core purpose of my blogs is to market my professional services. I choose not to cram every blog posting (or feed item) with marketing messages, but I do need to make that marketing connection. If people have no reason to visit my site, I don't get that benefit.<br><br>I realize you probably disagree with some or all of these considerations, and that's fine. Still it seems to me that your arguments in favor of all online publishers offering full-text feeds is based solely in your preference.<br><br>Personally, I think this consideration can vary widely by publication, goal, and target audience.<br><br>Thanks,<br><br>- Amy Gahran<br>  <a href=\"http://Contentious.com\" rel=\"nofollow\">Contentious.com</a><br>  <a href=\"http://RightConversation.com\" rel=\"nofollow\">RightConversation.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_15:07:45", "killed": false, "user_key": "897daf2d24886f328387982c3d4f9149", "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}, "9630723": {"up_voted": false, "ip": "", "has_replies": false, "message": "Amy: to be clear, this is my opinion and I do realize that other people don't agree with it. That's cool.<br><br>I wish you had full text feeds cause I want to read your content, but the competition for my time is fierce, so I'll stick with only full-text feeds, sorry.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_15:17:07", "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}, "9630724": {"up_voted": false, "ip": "", "has_replies": false, "message": "That's totally fine, Robert. And while I appreciate the occasional attention you've given my work, ultimately you don't represent my target audience. I need to set my priorities and make my decisions according to my goals and my target audience.<br><br>- Amy Gahran", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_15:31:31", "killed": false, "user_key": "897daf2d24886f328387982c3d4f9149", "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}, "9630725": {"up_voted": false, "ip": "", "has_replies": false, "message": "Amy: that's cool. I do see your work pop up occassionally in Memeorandum (which means other bloggers are watching your stuff, even if I don't want to).<br><br>Thanks for considering my points.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_15:34: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}, "9630726": {"up_voted": false, "ip": "", "has_replies": false, "message": "Danny, thank you! That's exactly what I was going to say.<br><br>Yes, scraping will always happen. But full-text RSS just makes it way too easy for the sploggers, and it's doubly bad because some do it and don't even realize it's wrong - they think that's what RSSyndication was made for.<br><br>I would put ads in my feed, but:<br><br>1. It doesn't work (financially).<br><br>2. I do want people to syndicate my headlines and partial text, which doesn't work with ads.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_15:37:19", "killed": false, "user_key": "8bc6a4f82031491d90ce7d3fe3d516c7", "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}, "9630727": {"up_voted": false, "ip": "", "has_replies": false, "message": "Re: FetchLinks<br><br>The next version (2.6, currently in beta) of NewsGator for Outlook includes this functionality built in.  Check out the feature intro posted by the lead dev:<br><a href=\"http://www.newsgator.com/forum/shwmessage.aspx?forumid=24&amp;messageid=12513\" rel=\"nofollow\">http://www.newsgator.com/forum/shwmessage.aspx?...</a><br><br>For more details on the 2.6 beta, see this post:<br><a href=\"http://www.newsgator.com/forum/shwmessage.aspx?ForumID=24&amp;MessageID=12482\" rel=\"nofollow\">http://www.newsgator.com/forum/shwmessage.aspx?...</a><br><br>Disclaimer: I am a NewsGator employee", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_15:38:40", "killed": false, "user_key": "406e0c5676030f89b91f8689cdf2a8ed", "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}, "9630728": {"up_voted": false, "ip": "", "has_replies": false, "message": "Amy: You don't sound contentious to me ;)<br><br>Robert: I'm interested in hearing your thoughts on bandwidth costs in regards to RSS. Should Jeremy Wright pay more than his $300/month in the competition for your attention? This Week in Tech pays tens of thousands on their full text feed for your attention. They have to make their time to live value a whopping 12 hours to cut down on requests (though many RSS readers supposedly ignore TTL)<br><br>You know, I would go so far as to say with RSS's bandwidth intensive stupid distribution model, the internet is simply not ready for full text RSS. Bandwidth is far too intensive. I think nobody has the right to tout full text feeds as essential and tell others to do that until you get your own server and start posting the bill for your RSS feed.<br><br>That is, unless your vision of the future is an internet made solely of bloggers on wordpress, typepad, and blogger.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_15:41:10", "killed": false, "user_key": "3f513e2cf340de447da7d12d8497d7bc", "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}, "9630729": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>Personally, I think this consideration can vary widely by publication, goal, and target audience.</i><br><br>Totally. But lazy bloggers demand the world spoon-fed them info. But missing important news as it just not full-text feeded, strikes me as well, stupidly clueless and arrogant to boot. Not a good practice either, as some of my best info sources are all partial.<br><br>Full, partial, snippet, abstract, hint, rumor, comment in passing, something overheard -- information is information, I am not going to have temper-tantrums over the format. This is yet another example why bloggers or citizen journo's will never replace real journalists. Unable to focus, or pinpoint the important, in the sea of information, they demand all now, no legwork needed.<br><br>HaloGate and RSSGate, even Scobles most diehard supporters are starting to think he's gone loopy. But thankfully, everyone is all ADD'ed, so onto the next big thing.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_16:06:36", "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}, "9630730": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"the competition for my time is fierce, so I\u2019ll stick with only full-text feeds, sorry.\"<br><br>My advice to you Mr. Scoble: Never forget how high your horse is, the higher it grows, the harder the fall.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_16:08:24", "killed": false, "user_key": "7d738f188ee70496d1a07cc31d422dfb", "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}, "9630731": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think Joe Public has a point.<br><br>What worries me is the amount of Internet energy someone like Scoble manages to shift. As if any of what he had to say was REALLY that important in life.<br><br>Like British plawright David Hare once said in his play 'My Zinc Bed': \"like Rome, Microsoft will also fall\" which is actually similar to what my gran used to say when I was a girl, albeit in her own sort of way: \"don't matter how well-to-do them folks think they are, they'll all end up 12 feet under like the rest of us\".", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_16:21:21", "killed": false, "user_key": "ac927748ef7a3db5e7e7b7fae5b26ad3", "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}, "9630732": {"up_voted": false, "ip": "", "has_replies": false, "message": "About the bandwidth argument, at the moment Scoble's feed is 124,449 bytes and when served via Gzip sends 31,531 bytes across the wire, bandwidth is usually measured in GB and as a baseline lets say costs 50c per GB even though you can probably get it even cheaper.<br><br>Scoble's feed could be served up a total of 34,053 times for 50c of bandwidth:<br><br>1,073,741,824 bytes (1GB) / 31,531 bytes = 34,053.529<br><br>So for a typical month of 30 days, over 30,000 reads of the RSS feed a day would cost only $15. Now if you use a dedicated file serving plan for something like $60/month that gives you 500GB of bandwidth a month and generate a cache of your RSS feed there you would be able to support something like 480,000 reads of the RSS file a day based upon Scoble's current feed size.<br><br>Just how popular are the sites quoting $10,000 bandwidth bills?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_16:49:53", "killed": false, "user_key": "83e226e176a7a3e8266a385617666a2a", "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}, "9630733": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sing it brotha'; I couldn't agree more!<br><br>Here's my case for full text feeds:<br>I worship Jon Udell.  My opinion of him as a technologist and as a person couldn't be higher.  Still I don't read his blog that often - probably less than weekly.  I read a lot of less-worthy blogs on a daily basis.<br><br>Why?  Because his feed isn't full text.  I have a mental block from even checking his feed for new content.  A partial-text makes me stop and think about each post \"Click or skip?\"  Full-text lets me plow right through.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_17:20:51", "killed": false, "user_key": "9c075fb83b3bb8a61ec3cf9ad3896d29", "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}, "9630734": {"up_voted": false, "ip": "", "has_replies": false, "message": "jase: If everyone ran 60$/month servers, every site would be down a LOT more than it is. Our servers run us 250$/month right now, and that's pretty cheap.<br><br>Also, at 17$/day, that's a hefty bill for ONE mildly trafficked blog. Now imagine content producers with 20 Scoble's, and all of a sudden you're in the 400$/DAY range (12K/month).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_17:27:08", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630735": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ignore my math, I misread your sentence. Still, the point is the salient. Scoble doesn't really have that much traffic. Also, what would Scoble's feed look like if it had images in every post (as more and more blogs are doing). Instead of 30K Gzipped, it'd be 300K. And all of a sudden you're talking different figures entirely (especially if, instead of 10,000 subscribers you have 50,000 or 500,000).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_17:30:03", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630736": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Mike: some feeds I want partial, some I want full (most I want full, though, even on my smart phone).\"<br><br>But you said you wouldn't subscribe to ANY partial feeds. More than once in the post, in fact. So which is it?<br><br>And is Tech.Memeorandum destined for the scrap heap? Or are they sending out a full feed that I am unaware of?<br><br>Just asking, carry on.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_17:38:44", "killed": false, "user_key": "02ac79b9b2373a4788ae9311d19c4fb1", "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}, "9630737": {"up_voted": false, "ip": "", "has_replies": false, "message": "For just file serving you don't need a fancy server, for high traffic sites you really should be caching your content and serving it from a separate server.<br><br>I'm guessing that is why comments often dissappear for short periods here on <a href=\"http://Wordpress.com\" rel=\"nofollow\">Wordpress.com</a> as the caching mechanism must have a few kinks in it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_17:43:28", "killed": false, "user_key": "83e226e176a7a3e8266a385617666a2a", "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}, "9630738": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ethan: on my desktop machine I don't subscribe to anything but full. I won't subscribe to anything that doesn't at least make full feeds available (and haven't, if you look at my NewsGator feed list). But, on my cell phone I can set NewsGator to only display partial text feeds. So, I have a choice.<br><br>Jeremy: I use a free blogging service. Maybe if the costs are too high for you you should consider a free service like Blogger, MSN Spaces, <a href=\"http://WordPress.com\" rel=\"nofollow\">WordPress.com</a>. :-)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_17:51:59", "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}, "9630739": {"up_voted": false, "ip": "", "has_replies": false, "message": "You will also be giving away your content to hundreds of splogs around, that will make money of your hard work, since these days lots of the scrappers get better listings on Google and Technorati.<br><br>No to full listing!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_18:21:25", "killed": false, "user_key": "654af963c7702db75a8f477951ccabc1", "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}, "9630740": {"up_voted": false, "ip": "", "has_replies": false, "message": "I was at IT@Cork (the tech session after lunch) when you asked how many people used RSS aggregators - maybe you would have got a bigger response than 2% if you had asked 'how many published content with RSS?'.<br><br>The low response might be connected to simple time pressures.  Frequently updating feeds on an aggregator and reading through them all can be low on the to-do list when there are so many other demands on time.<br><br>We could do with a 26 hour day over here.<br><br>I don't have strong opinions on the full/partial feed argument, but I do think that RSS will only become widely popular among casual internet users (who don't work in IT) when an aggegator is included as standard (not a plugin or third party add-on) in Office.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_18:22:31", "killed": false, "user_key": "1c0610f213c3b19836dff5d30f47426e", "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}, "9630741": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert: What are you on? Move to Wordpress.com? And give up all control, all advertising, all our custom applications, all syndication control AND be subject to someone else's downtime?<br><br>That's the stupidest thing you've said in this thread. Would that be your recommendation to the NYT too? Move their services to Xanga?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_18:29:08", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630742": {"up_voted": false, "ip": "", "has_replies": false, "message": "Also, Scoble, you get perks with your free blogging service that no other user of <a href=\"http://WP.com\" rel=\"nofollow\">WP.com</a> gets. Like your own template. And Matt's cell number.<br><br>We couldn't PAY someone to give us the service and customization we require. And we tried, we worked with the Yahoo folk for over 2 weeks trying to make it all fit and it just didn't. We, as a growing content business, needed more than Yahoo can give. And you think MSN Spaces is somehow going to work?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_18:31:20", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630743": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi Scoble,<br><br>I'm using Bloglines.I set it to complete entries on your subscription, but it still shows a few lines...perhaps it could be a setting in Wordpress? I checked Dave Winer's feed at <a href=\"http://scripting.wordpress.com\" rel=\"nofollow\">scripting.wordpress.com</a> and that works fine.<br><br>I love the article about growing your blog audience. Going to give it a go. :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_18:47:19", "killed": false, "user_key": "74aec0b2a8bbbf4e18377b7b3f8c268c", "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}, "9630744": {"up_voted": false, "ip": "", "has_replies": false, "message": "Partial or full?  Why does this always pop up as a hot topic?<br><br>It doesn't matter one iota if you're talking about \"protecting\" content or increasing/reducing readership.  It all boils down to what you like to read and how that material gets to your screen.  Do you like to have it there waiting for you?  Or would you rather only retrieve the items you really want to read?<br><br>Keep in mind this discussion is about human preferences.  From an automated sense (i.e. what your rss reader can offer), big deal... as long as the feed has a  back to the parent document, the full content is retrievable.  It takes a fraction of a second for a program to pull the url from the link element and request the document.  Done - the content is retrieved.<br><br>For an honest application, this means the content is placed alongside the feed's item so that the reader doesn't have to click on a link to view the entire article.  As an example, my rss reader, intraVnews, does this exact same thing.  I subscribe to a wider variety of partial feeds - some of them I prefer to leave them as partial, for others that I historically enjoy reading the full articles I simply instruct intraVnews to retrieve the full item.  If your reader can't download a full item, get a new reader... don't take it out on the publisher, though.<br><br>On the flip side, this automated process in the hands of the less honest is a problem, but that is a problem that is defined by the RSS protocol. If you publish information and contain a link to a parent document, the process of cloning content is a no-brainer... partial or full rss feeds are effectively no different (unless your parent documents require authentication to access, but that is a different issue altogether).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_18:55:54", "killed": false, "user_key": "23b524e48f5a9342f3d6d250578d409e", "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}, "9630745": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jeremy: I agree. It is absolutely ridiculous to suggest that anybody but personal blogs be hosted on free blog services. Companies need their own identity. I'm going to take a wild guess and assume there is no chapter in Naked Conversations that suggests Apple move their site to <a href=\"http://apple.typepad.com\" rel=\"nofollow\">apple.typepad.com</a> or myspace.com/apple. They could take their files and serve them from a free file hosting service and use Yahoo! to host their online store. Then Apple will never have web costs again! No, if a chapter like that exists in Naked Conversations, then the entire book's relevancy is down the toilet. And be aware Scoble, that is exactly what you just suggested. Consider it blogged: <a href=\"http://www.richbrownell.com/page.php?id=198\" rel=\"nofollow\">http://www.richbrownell.com/page.php?id=198</a><br><br>jaseone: There are sites that get bills that high. TWiT is one of them and their RSS is already served from a separate server. You are underestimating how many hits RSS gets.<br><br>On a related note, the Mix 06 RSS is partial text. I guess Scoble doesn't want like-minded individuals to attend.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_19:11:19", "killed": false, "user_key": "3f513e2cf340de447da7d12d8497d7bc", "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}, "9630746": {"up_voted": false, "ip": "", "has_replies": false, "message": "good discussion with valid points all round in my opinion.<br><br>In an ideal world I'd make my feeds full text every time - I see a lot of advantages in it even though I prefer to read partial feeds in my news aggregator (and I set them to only show me a title and first paragraph or two so I can scan them).<br><br>However, every day I find another splog using my feeds to generate content for their blogs - quite often with no attribution and no links back. At least with partial feeds they're only publishing my first paragraph or two.<br><br>The other element I'll throw into the mix is that if your content is good enough and you give people a reason to read your blog - they will.<br><br>This is illustrated by Robert following his brother's blog - he wants to know what he's got to say to the point he's willing to go out of his way to do so.<br><br>I find this is the case on my blog with some readers who tell me that I am the only partial feed they follow. Yep I've obviously lost some readers like Robert, but I guess that's a risk I'm willing to take. It doesn't seem to have hurt me so far :-)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_22:44:49", "killed": false, "user_key": "9bbed6b579dfa11d0dd9083ef6036f68", "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}, "9630747": {"up_voted": false, "ip": "", "has_replies": false, "message": "the length of this post is reason enough to have partial feeds. Yawn!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_23:26:50", "killed": false, "user_key": "dd77f0d5dcfb054b7c3085c083e56aae", "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}, "9630748": {"up_voted": false, "ip": "", "has_replies": false, "message": "I view partial feeds much like the 3 line preview of messages in outlook. If you don't get my attention with the first 3 lines of your email, I don't open it. I likely delete it.  If you get my attention with the partial feed, I'll click through and read the rest..and voila!  I'm now at your site, and if you've done things right you probably have me hooked.  And isn't that the goal?  At least for commercial sites?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_23:34:51", "killed": false, "user_key": "dd77f0d5dcfb054b7c3085c083e56aae", "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}, "9630749": {"up_voted": false, "ip": "", "has_replies": false, "message": "When you make a bold statement like \"Blog Herald doesn\u2019t understand why full-text feeds work\", you imply that all full-text feeds actually \"work\" and earn ad revenue, which of course is total nonsense. They may do so in the future, when someone comes up with a way to either successfully monetize full-text RSS feeds, or manages to make their site sticky despite offering full-text feeds.<br><br>And by the way, I won't subscribe to any feed that isn't partial-text :) I much prefer to browse, then get the full effect of the corresponding website. Except I keep envisioning something that might be out of some Blade Runner kind of world: an RSS reader that sequentially \"plays\" 3D holograms of stories.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_03:08:09", "killed": false, "user_key": "8198ab67cb2c2e560f1f84e30f29f731", "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}, "9630750": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey Bobby, here's some real numbers based on a vertical community/information site with 250k uniques a month serving just over 10 million pages.  It's soley supported by advertising revenue, mostly from an in house network with a bit from Adsense that grosses well into six figures a year.  For a while they used RSS to distribute feeds for the forum (which many of them are sort of blogs) and current news/feature content.  During that time the feeds were offered, page views didn't seem to decrease, impressions didn't seem to decrease and CTR didn't seem to decrease and conversions on the target advertiser's sites didn't seem to change.  No one really seemed to care though some people used RSS the to keep an eye on the forums.  The forum content was also available via email updates and NNTP.  No one really used NNTP, some used RSS and many more used email, by a factor of 5 times or so compared to RSS.<br><br>Leaving the RSS on wasn't a big deal, until one thing.  An advertiser that was responsible for about 20% of the revenue plus a pretty big chunk in the parent corps trade mag of similar content started asking questions.  They didn't seem to like it or get it that the content was being provided, in full without the ads that they were specifically targeting for that content.  It was decided that until the staff had a chance to start shoveling the advertiser's rich media ads into the feed, they'd stop the feed for the time being.<br><br>My point is this Bobby, it's pretty easy for you to dismiss people not using full feeds, or not providing any feeds when you don't have to make a living selling ads on your site having to appease both media buyers and community members.  Your site is not selling impressions and eyeballs and the people that run the site I mentioned had to decide on enabling a feature that hardly anyone in that community uses vs. generating some disdain from the people actually sending in the cash.  It ain't all about you, babe.  A business needs to make decisions based on what they know and how they feel, not on what some techno pundits think that don't have a financial stake at risk.  The choice of having to risk 10's of thousands in revenue vs. not being linked by a third party that does not contribute to the revenue stream is a pretty easy choice to make.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_03:12:20", "killed": false, "user_key": "834c0f08fd85903a2dc52eda1dc59a58", "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}, "9630751": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jeremy, just one thing: the people of Cork would be surprised to learn that you believe they are part of the UK.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_03:23:15", "killed": false, "user_key": "b79bb48c9d6bf31a1fe2b91294939f1c", "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}, "9630752": {"up_voted": false, "ip": "", "has_replies": false, "message": "WOW, The debate is hot and heated.<br><br>I think the one thing that publishers should be aware of is the user experience. As a publisher of content I would want the user to have the best possible experience so I would always recommend publishing full feeds for this reason.<br><br>You have to understand that many publishers have no desire whatsoever to monetize their content in the traditional advertising model form (PPC or ads).<br><br>Perhaps the publisher makes thier money by delivering quality value added content to their user base or target customer base. The readers become evangelist, or extends the WOMM (word of mouth marketing). The customers become more loyal...etc...they increase sales.<br><br>Publish full content and extend the brand and don't try to make a dime from advertising is a model that works for many businesses. They let everyone syndicate the full content.<br><br>This is why a full RSS Content Delivery Strategy needs to be designed before businesses start blogging to make sure they can deliver what the audience wants.<br><br>My vote is for full feed content.<br><br>Rodney Rumford<br><a href=\"http://leveragedpromotion.com\" rel=\"nofollow\">http://leveragedpromotion.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_04:11:58", "killed": false, "user_key": "a71ba4d31bb1fe3bb312ecbc44fea0ce", "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}, "9630753": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"too full of smart people\", I think you mean too full of self-absorbed arrogant people.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_12:29:15", "killed": false, "user_key": "5d21d62d95d18914fa9edd9ff888fb8c", "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}, "9630754": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't have time to read all the comments or the entire post but let me just say that using full text over partial feeds gives you a duplicate content penalty in Google if a news aggregator copies your text.  This eventually pushes your weenie blog down into supplemental results in the search engines (mainly google) where you suffer, never getting your head above water. If you are not a weenie blogger you have \"authority\" which allows you to go forth and prosper in the engines. The main reason partial feeds have to be used by the rest of us Robert.  I know, most people do not care or notice this stuff...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_14:30:13", "killed": false, "user_key": "fd1df7dfb6cb958500b8ed9ab95d94e8", "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}, "9630755": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>I am not going to slog through all 91 comments, but it seems that no one has yet made the observation that distinishing between aggregators and browsers may prove meaningless with time. We already see beginnings of integration in browsers like IE 7 and Firefox.<br><br>There's also integration coming from the other direction. My current RSS reader of choice is SharpReader, your typical tri-pane MDI app. The lower-right pane is the expected blog web page itself. You are reading this comment written in that pane. In fact, the third pane is simply an instance of IE. I often use it to tweak my own blog after emailing an entry in (MSN is still clueless about what to do with that burst of Word formatting data at the top of each entry). I'll also link off a blog page to follow up something without leaving the pane.<br><br>I therefore reject the thought that the future of RSS is an either/or proposition. Indeed, I think aggregators and browsers have to merge if we want people like our mothers joining the audience pool.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_20:03:07", "killed": false, "user_key": "38a5f5c7d59e65c9b9749f663e20e3af", "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}, "9630756": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've been debating the full-feed / partial feed thing myself.  On one of my sites, I decided to use partial feeds because quite frankly the feeds on that particular site weren't targeted at people using newsreaders.  What I was aiming for was other websites picking up the feed and displaying my headlines, all of which link back to my website.  And with the feed only being there a couple weeks, I already have websites displaying my feed on their websites.<br><br>When you talk about feeds, you seems to assume that the only consumers are people using newreaders.  In many cases, the consumers are other websites publishing your feed.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-23_22:05:29", "killed": false, "user_key": "e6bf5bc24d9e7f1e20f21cb1349a1f45", "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}, "9630757": {"up_voted": false, "ip": "", "has_replies": false, "message": "Aside from the great reasons you gave why full-text feeds are better, they're also the *only* type of feeds that can get subscribed to BlogBurst:<br><br>\"Blog Requirements:<br><br>    * Full text syndication feed in RSS or Atom; most common blogging systems will work fine\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-24_14:44:38", "killed": false, "user_key": "f819599bbed80f48013d5acad012a9c3", "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}, "9630758": {"up_voted": false, "ip": "", "has_replies": false, "message": "Excellent post but I think there is another reason that Companies and users don't always like full feeds and that is branding.<br><br>So I put up an article on my blog about it:<br><br><a href=\"http://blog.timc3.com/archives/297\" rel=\"nofollow\">http://blog.timc3.com/archives/297</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-24_16:01:22", "killed": false, "user_key": "2e896a0ca5c7b1a889ec6528507f4432", "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}, "9630759": {"up_voted": false, "ip": "", "has_replies": false, "message": "The bigger conversation around clipped feeds of interesting information makes you click through.<br><br>I use RSS to gather information quickly about topics that are business and interest driven.  If I have to click thru then I'm wasting time.<br><br>Another thing about full feeds I can tell pretty quickly if I need to read the rest of the post or not.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-25_02:43:37", "killed": false, "user_key": "d7bc077cffd8180bef8ab7c2aff37541", "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}, "9630760": {"up_voted": false, "ip": "", "has_replies": false, "message": "One problem with full feeds though is other websites can now reprint your entire article for free on their website and users never have to click through to your website.  Its an easy way for competing websites to steal content.<br><br>Imagine if news organizations all published full feeds?  Their news would appear on tons of websites and people would never have to click back to the news website.  Imagine how much money these news websites would lose in advertising when people no longer have to visit their website to read the news.<br><br>This more applies to non-blog websites publishing RSS feeds, though, but it would still be a concern for blog websites.  Full feeds are NOT just used in feed readers by techies, they are also used on third-party websites to provide content from outside sources.<br><br>Although this could be used as an advantage if that was your goal.  If your non-blog or blog website published an RSS feed with the entire article, you could encourage non-blog websites to published a automatically changing syndicated column on their website using XML-to-HTML and RSS technologies.  You would just have to make sure that there were branding and links in the article itself to insure that most websites would still link back to you.  Unscrupulous websites could still scrap your name and link and branding off of it, but most wouldn't.<br><br>So if you published full feeds, be aware that it might just appear... in full... on someone else's website.  If that's okay with you, publish a full feed.  It could be an advantage if you brand it and provide links to your website.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-25_11:54:45", "killed": false, "user_key": "e6bf5bc24d9e7f1e20f21cb1349a1f45", "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}, "9630761": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks Scoble. This is some really good data.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-25_12:35:44", "killed": false, "user_key": "73dfb1eb77844f0dbae599ff9b81e78f", "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}, "9630762": {"up_voted": false, "ip": "", "has_replies": false, "message": "hi scoble,<br>regarding the full text feed, i wonder whether the settings on your wordpress blog has it set....to that. Under options...in the dash board under reading you have the option for full text or summary.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-03-08_07:31:50", "killed": false, "user_key": "74aec0b2a8bbbf4e18377b7b3f8c268c", "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}, "9630763": {"up_voted": false, "ip": "", "has_replies": false, "message": "I totally think full feed is the way to go.  What's holding us back is the old mindset.  I blog about this here:<br><br>Blog content ownership and control<br><a href=\"http://reblogger.wordpress.com/2006/02/08/blog-content-ownership-and-control/\" rel=\"nofollow\">http://reblogger.wordpress.com/2006/02/08/blog-...</a><br><br>FeedFlare - building longevity into blog posts<br><a href=\"http://reblogger.wordpress.com/2006/03/01/feedflare-building-longevity-into-blog-posts/\" rel=\"nofollow\">http://reblogger.wordpress.com/2006/03/01/feedf...</a><br><br>In essence the change over will come if we design and change the way we think so that we accept permanent ownership of the post by the creator and earns for the creator for years afterwards (unlike artwork where the item leaves the creator and never earns for the creator again).<br><br>As long as we design for this, by retaining a connection with every copy of the post - no matter where it goes, for how long or how it is used - then we will have resolved the problem people have about giving out full feeds.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-03-09_00:44:21", "killed": false, "user_key": "6fe984f69306ee8ac6c96b9ab5423a25", "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}, "9630764": {"up_voted": false, "ip": "", "has_replies": false, "message": "I would like to comment on the bandwidth issue of RSS.  Like some mentionned previously, there do is a concern regarding RSS (feeds) and their bandwidth usage.  Currently only 8% of Internet users know what RSS are, but with all the browser-RSS integration that are coming up (like IE7), this number will increase a lot.<br><br>We have come up with a solution called RSScache.  It actually cut down bandwith usage by about 90%.  RSScache is targeted at enterprises and webmasters that have low to high RSS traffic.  If you have bandwidth concerns (or need an effective RSS caching system to speed up your requests), take a look on our site: <a href=\"http://www.rsscache.com\" rel=\"nofollow\">http://www.rsscache.com</a><br><br>Hope this can help some of you!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-04-12_18:09:28", "killed": false, "user_key": "db7a2bfd1e2205c907881a430f6bec05", "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}, "9630765": {"up_voted": false, "ip": "", "has_replies": false, "message": "Home based Internet research Jobs<br><br>We are now hiring home based workers to complete simple online research assignments.<br><br>No selling \u2013 no recruiting \u2013 no adplacing<br><br>For details visit<br><br><a href=\"http://www.typeinternational.com/idevaffiliate/idevaffiliate.php?id=3168_33_3_69\" rel=\"nofollow\">http://www.typeinternational.com/idevaffiliate/...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-05-23_17:22:52", "killed": false, "user_key": "345f13f2a66872a34d7c7c32d958d5d5", "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}, "9630766": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hello,<br><br>Interesting post.<br>I usually use <a href=\"http://www.youpload.com\" rel=\"nofollow\">www.youpload.com</a> myself for file uploading, it has a nice web 2.0 interface and  is pretty fast.<br><br>Breg,<br>Marcus", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-08-03_10:34:18", "killed": false, "user_key": "abb108463f1e2f666ccf524795c25ce3", "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}, "9630767": {"up_voted": false, "ip": "", "has_replies": false, "message": "Definitely in favor of full feeds! Check out <a href=\"http://www.fullfeeds.com/\" rel=\"nofollow\">http://www.fullfeeds.com/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-10-01_03:00:53", "killed": false, "user_key": "4063cd747e5b142eb744e4a83364dae5", "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}, "9630768": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thought folks might this article interesting on how <a href=\"http://FastCompany.com\" rel=\"nofollow\">FastCompany.com</a> totally doesn't get the whole online content thing:<br><br><a href=\"http://www.smallbusiness20.com/Blog/tabid/6307/articleType/ArticleView/articleId/1257/Default.aspx\" rel=\"nofollow\">Lessons From A Laggard:  <a href=\"http://FastCompany.com\" rel=\"nofollow\">FastCompany.com</a> Shows How Not To Do Online Content</a><br><br>Talk about not getting the whole online media thing...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-12-18_13:01:00", "killed": false, "user_key": "dshah", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "2 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}, "9630769": {"up_voted": false, "ip": "", "has_replies": false, "message": "We're in a niche that gets high eCPMs from AdSense. Most of our traffic is from incoming Google searches.<br><br>Because of our niche, our RSS feeds are hijacked by many, many splogs. With full-feed we found our site ranking below some of these splogs on Google, so they were getting the traffic, not us.<br><br>DMCA notifications take care of a lot of this, but I was getting tired of devoting a couple of hours every Friday to sending them out and checking on outstanding complaints. (I was also getting tired of showing up in the Chilling Effects database.)<br><br>The straw that broke the camels back was Level 3, a Colorado ISP that hosts one of the biggest splog networks. Level 3 appears to have a DMCA contact point, but they do not in fact respond to e-mailed or faxed DMCA notifications. Time to call the attorney and start burning legal fees? I just went back to partial feeds and saved myself a lot of headaches.<br><br>Our partial feeds use hand-crafted summaries, not the first umpteen lines, so readers can get the jist and decided quickly to click through or move on. In most aggregators it's a simple option-click to get to the full feed in your browser, and you can do this for 20 posts and at the end of your RSS session you have a nice window of tabs that takes no time at all to scan through.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-17_22:11:51", "killed": false, "user_key": "8259c0af429cf46c50037c397d3ffe7e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 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}, "9630770": {"up_voted": false, "ip": "", "has_replies": false, "message": "has anything changed? I'm looking for  a list  of full content feeds. It seems all the ones I use...ws journal, sfgate: none are full.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-06-19_19:45:16", "killed": false, "user_key": "135e0fb484b66257dec3319ce2e04ce6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9630771": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh, does anyone have a list of full content feeds?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-06-19_19:45:49", "killed": false, "user_key": "135e0fb484b66257dec3319ce2e04ce6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9630772": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm a reader not a blogger, and I fall in the camp that much prefers partial feeds because skimming is easier for me with them. If I want to read more, one click is not hard. I generally unsubscribe to full feeds if they regularly have long articles, except the few I really, really like.<br><br>I recognize this is a personal preference, related to the style of reading and reader I use, and almost certainly not universal.<br><br>Robert, your response to Vinnie is not following your own advice: telling someone to change their tools and they way they want to read feeds does not \"treat the connector with the most possible respect and give him/her the easiest way to consume your content and link to it.\"<br><br>Some folks are telling you what the easiest way for us to consume your content is, and you're telling us we're wrong. I've tried other readers, I like the one I use, thank you.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-07-10_15:40:20", "killed": false, "user_key": "c195df69ec47dea743937a67725eabdf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9630773": {"up_voted": false, "ip": "", "has_replies": false, "message": "I apply with hope on your tender hearts!<br>A little girl needs your help, she has a cancer.She is just almost 1 year old, now she has treatment in an oncologic institute every month.<br>It is necessary to do an expensive operation quickly!<br>Her mother is in difficult financial position, she educates her daughter by herself, as girl's dad left them, when he found out about the daughter's disease. They will appreciate any your financial help!<br><br>WMZ for helping: Z109187995692", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-10-23_14:30:40", "killed": false, "user_key": "c8fa8911495eba98f99c5317e6869707", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "11700015": {"up_voted": false, "ip": "", "has_replies": false, "message": "There are a few services out there that can convert partial-text feeds into full-text feeds. If anyone's interested, I've been working on one here: <a href=\"http://fivefilters.org/content-only/\" rel=\"nofollow\">http://fivefilters.org/content-only/</a><br><br>It's a free software project so the source code is available and you can host it yourself.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-06-24_17:05:51", "killed": false, "user_key": "k1m", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "5 months 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}, "9630678": {"up_voted": false, "ip": "", "has_replies": false, "message": "Man it's been ages since I posted a comment, but anyway just to throw my 2 cents in here, the whole point of RSS is to read content when and where you want it.<br><br>RSS is the Tivo of information, the iTunes of text.<br><br>How would you feel if your tivo only recorded the first 15 minutes of a 2 hour movie? How would you feel if your iPod only had the first 30 seconds of a 4 minute song? Not too happy now would you.<br><br>Content needs, wants, and should be unleashed so that I don't even need a typical browser to read content anymore, just some device that takes an RSS feed.<br><br>I too am like you Scoble, the moment I subscribe to a feed and see that it's partial I just email the host, and unsubscribe.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:31:23", "killed": false, "user_key": "5546dd483d601293c5ab913071bdcabc", "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}, "9630679": {"up_voted": false, "ip": "", "has_replies": false, "message": "Great post, I was complaining about just this the other day.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:35:36", "killed": false, "user_key": "39dff09620ec1868e474199beff30189", "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}, "9630680": {"up_voted": false, "ip": "", "has_replies": false, "message": "Since switching from partial to full RSS feeds I didn't experience any change in advertising revenues.<br><br>Unlike me, many publishers do experience substantial decrease in revenue. The problem here is that it might push publishers to use in-content advertising that will be aggregated as legitimate content. I'm not sure I'm ready for that just yet.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:40:14", "killed": false, "user_key": "f00899facd99ad57adf230d9faed6708", "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}, "9630681": {"up_voted": false, "ip": "", "has_replies": false, "message": "Just to add one more thing, the content providers themselves are inherently screwed because the definition of \"Content Provider\" is rapidly changing thanks to blogs.<br><br>Once something hits the net, there will be someone who will churn out a clean, raw, usefull form of said content to be distributed amongst the people.<br><br>Bad website design, server timeouts, pop ups that hide content, none of that has been present in my world ever since I started using RSS about a year ago. The web browser will always be about surfing, but anyone serious about their news, and I know you and I Scoble are certified news addicts, will use an aggregator for everything.<br><br>The thing that will make full feeds obvious in the coming years will be the rise of eBook readers based on eInk technology. The whole definition of newspaper will change. Those people who read the New York Times or the Wall Street Journal on their eReaders will start a trend that will only grow. RSS will be THE ideal way of communicating content, and that's when you will see 75%+ people using RSS (without even knowing it too!)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:40:47", "killed": false, "user_key": "5546dd483d601293c5ab913071bdcabc", "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}, "9630682": {"up_voted": false, "ip": "", "has_replies": false, "message": "amorson: I've had some publishers claim the same thing with me, but when I push them for proof they always back down and start hemming and hawing. The claim that full text feeds reduce revenue just DOES NOT stand up to scrutiny. Even if it were tried, only a small percentage of anyone's readers would switch to RSS. Even me, who has a much higher percentage of RSS readers than most sites has only a small percentage. And my traffic is growing. Three years ago I only had 2,000 readers a day. Now I'm up to more than 10,000.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:45:16", "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}, "9630683": {"up_voted": false, "ip": "", "has_replies": false, "message": "Your long post is one justification for partial feeds. You can skim through many partials at a glance...I have gone back on forth on the issue of full v/s partial but why has it become so religious - if someone makes his sole decision on whether or not to read a blog based on if the feed is partial or full text, I would suggest the blog writer probably does not need that fickle reader...<br><br>Look at it from a blog writer's perspective. Should they write for the fringe reader or those that participate, comment, link etc? It's classic business  scenario - you want to cater to a core consumer base, and opportunistically to a casual customer base", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:51:01", "killed": false, "user_key": "fc9eab3b2b2c3199a193e8c65c3aae1b", "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}, "9630684": {"up_voted": false, "ip": "", "has_replies": false, "message": "Vinnie: you need a better news reader that lets you skim, even if posts are long. I only see headlines in mine, but first post is previewed.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:54:23", "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}, "9630685": {"up_voted": false, "ip": "", "has_replies": false, "message": "Vinnie: if you want traffic you must cater to the connectors, bloggers, and journalists. Here's a point: yesterday I had about 17,000 readers. If you want me to link to you (which will drive between 200 and 2,000 people to you, maybe more with a sensationalistic link) then you'll need to treat me well. Treat me badly and I'll be less likely to link to you. That might sound arrogant, but I have 840+ feeds that provide full text and that treat me well. Why do I need to read your partial-text feed? If you're the New York Times I might put up with that kind of abuse (and it IS abuse cause I want full text. I HATE partial text feeds. Hate them. Got that?)<br><br>You need a better RSS aggregator if you think partial text feeds are better.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:57:29", "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}, "9630686": {"up_voted": false, "ip": "", "has_replies": false, "message": "Keeping a blog alive after a while is a matter of accepting to write valuable content for free. If you are still doing that after a few months, then either you have got an agenda (derailing your competitors, drawing circles around you to protect your job as a marketing person, ...), or you are clueless, or you have way too much time in your hands. In both cases though, you pretend to be a journalist. What for? I have no idea. Perhaps it's an ego thing.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_08:59:13", "killed": false, "user_key": "b9ac9cdb9d77dd95758a15d77cc5a879", "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}, "9630687": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think it depends on the kind of blog and the content.  There are some blogs that I am grateful for having full-text feeds and others I wish had them.  At the same time I can say the same for some full-text feeds that shouldn't be.<br><br>My personal blog supplies a full-text feed, but my website's RSS only provides an abstract and a link.  Some of the tutorials are long and full of graphic elements, if the abstract interests you, click the link, if not, you can skip it and you just saved us both some bandwidth.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_09:01:50", "killed": false, "user_key": "85da024354222e13b52d657e75087f52", "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}, "9630688": {"up_voted": false, "ip": "", "has_replies": false, "message": "good point on reader technology which allows viewing of partial feeds...<br><br>on your second point, not every reader is Scoble. Too much of blog world is based on us feeding each other. The business IT audience I write for barely comments or links...but does read blogs...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_09:03:37", "killed": false, "user_key": "fc9eab3b2b2c3199a193e8c65c3aae1b", "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}, "9630689": {"up_voted": false, "ip": "", "has_replies": false, "message": "A few points for you:<br><br>1. YES, we see an increase in pageviews when we move to partial feeds.<br>2. YES, we see an increase in ad clicks when we move to partial text feeds.<br>3. Your argument that going full text encourages more people to visit the site, while also admitting that less than 1% of peopel actually use RSS, is a little circular.<br><br>And, finally, if we can't \"prove\" (note: I've NEVER backed down from you on this discussion) that full text feeds result in less traffic to a website (which, really, is just common sense), then how are you going to PROVE that it somehow means more traffic?<br><br>Saying that you have gobs of traffic and you *might* read the blog, and then out of your 10 posts *might* link to it and that some of your readers *might* visit isn't motivation enough to most publishers.<br><br>Personally, I'd rather give readers BOTH a full-text, ad supported feed AND a partial-text non-ad feed. Choice. But, either way, users are 'paying' with their eyeballs to view the content. Which is the way it should be.<br><br>Also, I've done 2 conferences this month already. Both of them were 'industry' conferences (one marketing, one fashion). In both, RSS readership, blog readership AND blog authorship were above 30%.<br><br>It's growing in the mainstream. Maybe not in Cork (hello, the UK is well known to be behind the curve, no idea why you raised Cork as some bastion of normality). But it is growing.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_09:11:11", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630690": {"up_voted": false, "ip": "", "has_replies": false, "message": "Vinnie: good point, which is why there are a ton of different kinds of aggregators. MyYahoo or <a href=\"http://Live.com\" rel=\"nofollow\">Live.com</a> is a ton different than IE 7 which is a ton different than RSS Bandit or FeedDemon which is a ton different than NewsGator which is a ton different than Dave Winer's OPML Editor/River of News. Some only display headlines. Some display river of news. Some do three-pane email style views.<br><br>I am not opposed to content producers providing BOTH full text and partial text feeds. On my cell phone I tell NewsGator to only bring partial text so that I can get the headlines faster, for instance. But it's MY CHOICE. I love choice! I hate it when a content producer thinks he or she knows how I'll read his or her content better than I do (or, worse, if he or she adds a business model decision into that).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_09:12: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}, "9630691": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jeremy: I don't believe you, but I guess you know better. Personally, when you link to me you don't send me much traffic at all, so not sure where all this traffic on your sites is.<br><br>But, that's beside the point.<br><br>I didn't say that. I said that if you want me to read your site, you need to provide full-text feeds. I'm far more likely to link to people who have full-text feeds than those who have only partial text feeds. Why? Cause I read them more often.<br><br>I guess if you're doing fine without me, no reason to worry at all. Just keep doing what you're doing.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_09:16:00", "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}, "9630692": {"up_voted": false, "ip": "", "has_replies": false, "message": "&gt;Your argument that going full text encourages more people to visit the site, while also admitting that less than 1% of peopel actually use RSS, is a little circular.<br><br>No, it's not. Let's say I have 10,000 readers today. Let's say 1% of them read my blog in an RSS Aggregator. That still leaves, what, 9,900 in the Web browser, right? Now, what you and I both know is that those readers are not all the same. Some of those readers also have 10,000 readers. Let's say that's you. Do you read my blog in an aggregator? Based on how fast you answered here, I'd guess yes.<br><br>So, now, not only are you much more likely to link to me cause you're pissed off at what I wrote, but you're much more likely to have 10,000 readers (like you have noticed, RSS users are highly likely to also be bloggers or journalists or connectors -- in my research they are FAR more likely to have 10,000 readers than those people who only read me in a browser).<br><br>So, now, let's say you link to me. That'll probably send me 2,000 people (if you had 10,000). So, now I have 2,000 more readers today that I otherwise would have had. Let's say those are 99% Web readers, and only 1% RSS readers. So, now, I have way more traffic.<br><br>Now, continue this out. Let's say I turned to partial text feeds and 10% of my RSS readers unsubscribed. What kind of hit is that to my traffic?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_09:23:07", "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}, "9630693": {"up_voted": false, "ip": "", "has_replies": false, "message": "The thing is, full content feed are also good for traffic, as RSS indexing bots get more chance to index you well if they can actually read what's your writing about (and not only the 50 first words). That's point #1 out of <a href=\"http://frenchfragfactory.net/ozh/archives/2005/09/15/five-reasons-why-partial-content-feeds-suck/\" rel=\"nofollow\">5 reasons why partial content feeds sucks</a> :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_09:38:49", "killed": false, "user_key": "33ae983c72db97d93df45a6290d3f436", "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}, "9630694": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, it doesn't work like that at all.<br><br>You have 10,000 readers. When you link, you send maybe 500 people. Of those, 10% will read again, and 10% will become \"readers\". So, 5 readers for your link.<br><br>\"Now, continue this out. Let\u2019s say I turned to partial text feeds and 10% of my RSS readers unsubscribed. What kind of hit is that to my traffic?\"<br><br>Ahhh, here's the meat of it. Say 10% unsubscribe. But, if they are 40% more likely to click, the 90% of readers are generating much, MUCH more traffic than the 100%.<br><br>Yes, I know you'll go all \"but what if those 10% were connectors\" on me. It doesn't wash. I've been in the game long enough to know that connectors are fickle, their audiences are fickle and that readership transference isn't as simple as 1 link. If it was, EVERYONE would have millions of readers.<br><br>Think about it. If EVERY link you sent had 10,000 people going to it, and if EVERY one of those became a reader, you'd be turning hundreds of blogs into million-reader blogs EVERY month.<br><br>And you and I both know that just isn't happening. Yes, once every week or so you hop on a big \"conversational thread\" whereby some nobody gets a few dozen links.<br><br>Like that guy who was on top of <a href=\"http://wordpress.com\" rel=\"nofollow\">wordpress.com</a> for a few days. Now where is he? Nowhere.<br><br>Traffic doesn't equal readers. RSS subscribers don't equal traffic.<br><br>To say otherwise is to, again, get pretty circular. The reason you want full text RSS feeds is so you don't have to visit a site, after all.<br><br>And, as far as you not visiting or reading sites that have partial text feeds, the irony must be lost on you. The Blog Herald is one of our partial text sites.<br><br>And, as far as \"so not sure where all this traffic on your sites is\", our sites aren't for you. Sure, we have a few that fall into the techy realm, but most are for topics that A Listers and \"connectors\" don't care about: aviation, crocheting, personal finance, handmade creations, wrestling, etc.<br><br>That doesnt' mean our traffic doesn't matter though :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_10:13:53", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630695": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, too many sites interpret full text feeds to mean I'm giving them the right to reprint my content. I'm not. That why I don't do a full text feed.<br><br>Yep, I could put a copyright statement in the feed saying don't reprint everything, but people don't look at that. Heck, people reprint without permission right now even without a full text feed.<br><br>If someone has good content, I'll take the feed full text or not and clickthrough. Deciding that everyone must have full text feeds is simply assuming we are publishers who are all the same, and we simply are not.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_10:15:01", "killed": false, "user_key": "da37bc7a32119e0fc8e69ffe240ced9d", "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}, "9630697": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Now, continue this out. Let\u2019s say I turned to partial text feeds and 10% of my RSS readers unsubscribed. What kind of hit is that to my traffic?\"<br><br>Actually I love this. Lots, and lots of people LIKE partial text feeds. They're skimmable (and, no, lots of people dont' want to use feed readers that only give headlines - and saying they have to switch to get the efficiencies of full text feed reading is, well, ironic).<br><br>So, what if 10% of your traffic unsubscribes over time because your posts are too long?<br><br>It's a two-edged sword, which is why I'm a proponent of having both full AND partial feeds. You get all the benefits of both. Readers get to choose what is best for them.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_10:18:04", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630698": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is pure speculation not based on any data. If you can prove to me that full text feeds result in more money, then I'll believe you.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_10:29:34", "killed": false, "user_key": "830f47b741717496a039ad3f0c540266", "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}, "9630700": {"up_voted": false, "ip": "", "has_replies": false, "message": "Despite the downsides, of which Jeremy and others have mentioned, I still want readers to be able to experience the content however they choose and that's why we use full text RSS. Not on every blog but most of our blogs. This is an inherent risk as a publisher I accept and every blogger, small to large is a publisher and gets to decide what risk they want to take.<br><br>I'm not as black and white as you, Scoble when it comes to full text RSS but I do prefer full text because some readers help me shrink the content (like the Safari RSS reader) with a handy slider so I can see it in smaller chunks if I want.<br><br>Many of my posts are long, so a partial feed probably would cater to some percentage of readers but we've even gone one step further for readers and made it so every keyword on our blog can become an RSS feed. Readers can get only the content they are interested in or suck on the firehose, it's up to them. They are in control. I like giving them that control.<br><br>Yes, Danny Sullivan, it means people rip off our content, retool and repurpose it and it finds its way to splogs galore, despite our copyright notice on every page and in the RSS feed.<br><br>Content being scraped and ripped from webpages without permission (a la the dishonest mashups) seems to be happening in this new Web We Rip Of You Point Oh revolution. So it just makes it easier for these thieves to steal your content when it's full text RSS, but it doesn't mean they still can't steal it right from your webpage.<br><br>There are three different concerns here: what to do about DMCA violations (publisher), how to give the reader what he wants (reader) and whether giving the reader full text RSS feeds has any significant impact on advertising (publisher).<br><br>I suspect those who worry more about giving the reader -- focusing on the content they are coming to see, instead of the content they aren't coming to see (advertising) -- what he wants will still be doing this in the years to come vs. those who try to squeeze every available penny out of their readers.<br><br>Scoble might be wrong about a number of things, but he does seem to care about readers and cares as a reader. I respect that and can see where readers like Scoble can be served and money can still be made.<br><br>Be careful of greed, folks.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_10:49:31", "killed": false, "user_key": "de98c1924472930f24b84f40187c3b86", "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}, "9630701": {"up_voted": false, "ip": "", "has_replies": false, "message": "I didn't get the whole 'full vs partial' argument until I started browsing from a PDA whilst sitting on the train. The practicalities of your PDA getting a GPRS or 3G connection, pulling in the data at sub-broadband speed, and attempting to render the page you want (which probably isn't optimised for mobile browsing). And then doing it again for the next full story. Blimey. Still... I'm glad I didn't pull this epic post in via PDA, full feed or not. That would have eaten my entire bandwidth allocation for the month. :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:00:30", "killed": false, "user_key": "a323c38a8821734490518fe8331afae7", "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}, "9630702": {"up_voted": false, "ip": "", "has_replies": false, "message": "Here is a good question related to this debate, is the purpose of your content to be read &amp; appreciated by as many people as possible or is it for you to make as much money through advertising revenue as possible?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:03:35", "killed": false, "user_key": "83e226e176a7a3e8266a385617666a2a", "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}, "9630703": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jase: It's to be read by as many people as possible, while providing an income to our writers, so they can continue writing pieces that their audience wants to read.<br><br>This isn't about \"greed\". This is about a give and take business relationship. Readers get what they want (good content), how they want it (full or partial text feeds). And publishers and authors get what they want, which is eyeballs and the money necessary to sustain the content.<br><br>The only person losing out is the idealist, who wants content to be free, without ads, because it offends his sensibilities.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:10:09", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630704": {"up_voted": false, "ip": "", "has_replies": false, "message": "No wonder you get dissenting posts with a condescending tone like that...try spreading less of the 'we the Mircrosoft Empire' vibe.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:27:19", "killed": false, "user_key": "2591c43c19cfd61eee304393f115f044", "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}, "9630705": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi, frist post :)<br><br>With all due respect, I think you're speaking from personal preferences (you like the full feed / hate partial feed) and not from facts or even research.<br><br>Have you in fact conducted representative usability studies across a range of newsreaders, platforms, and topics? Have you conducted similar studies of ROI?<br><br>Don't bother, I know the answer, as you're not in research but in blogging. But, has anyone? At all?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:35:25", "killed": false, "user_key": "07f097b50d29c832a50eb8bcf2ebfb69", "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}, "9630706": {"up_voted": false, "ip": "", "has_replies": false, "message": "I disagree, Jeremy. For some publishers, it very much is about greed. Not saying that's you, but it certainly is the case for some out there. Some blogs are so whored up with ads -- both in the RSS feeds and on the websites -- that readers can't even tell where the content begins and advertising ends.<br><br>I don't mind full text RSS with ads, that seems like a fair tradeoff, but I do mind blogs where the focus on advertising overlaps and invades the reader experience.<br><br>This will just drive more readers to tools like GreaseMonkey and Norton's Antispam where the ads are stripped out. This scenario certainly doesn't benefit publishers as a whole.<br><br>Here there be tigers.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:45:17", "killed": false, "user_key": "de98c1924472930f24b84f40187c3b86", "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}, "9630707": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert you have hit the nail on the head with this article, I dont link nor do I read blogs that have partial RSS feeds, they are wasting my time. I never click on adsense ads even when i am in a browser but I do link to articles like this one and even post to articles like this one directly from my feed reader. Will I drive traffic to you absolutley will it be a lot who knows, but its traffic you may not have gotted otherwise.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:50:15", "killed": false, "user_key": "d5a73f838de9046d3ade44a569c41fd3", "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}, "9630708": {"up_voted": false, "ip": "", "has_replies": false, "message": "My readers matter more then my page-view stats.<br>Newspapers have been sending readers to page 34 from page 1 for ages, just for the sake of advertisers.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:50:22", "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}, "9630709": {"up_voted": false, "ip": "", "has_replies": false, "message": "TDavid: Agreed. We're really trying to balance a positive user experience with the earnest needs for writers to earn more than a few bucks a post. The challenge is that you can't do one without the writers. Favor writers too much (ie: too many ads) and you lose readers (and then writers). Favor readers too much (ie: no ads) and you lose writesr, and then readers.<br><br>For for-profit blog publishers (all kinds of publishers really, but blog publishers more than other types), RSS is the bread and butter of getting the word out there - but it can also kill you (server load, no return without ads in full text feeds, content theft, etc).<br><br>But I wouldn't trade it for the world. It's a great industry to be in!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_11:51:35", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630710": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, this is an excellent post (especially since you got all the way through it without mentioning your phone du jour one time).<br>However, SimonD has an excellent point; namely PDAs and for that matter smart phones.<br>Do you actually want full RSS feeds on those devices? Personally I would go for full RSS on the desktop/laptop: yes...on PDAs and smart phones: no.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_12:08:42", "killed": false, "user_key": "7594126d924969f4b8f184da7fdf8524", "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}, "9630711": {"up_voted": false, "ip": "", "has_replies": false, "message": "The real debate here is not about full text vs partial text RSS feeds -- this is just a symptom.  The real debate is about what the future of content monetization is going to look like.  As you point out, people are increasingy tuning out of advertising anyway -- whether it is on a web page, in a feed, or anywhere else in media. Since the content industry has evolved largely on an advertising supported business model, naturally there is an enormous fear as this model dissipates -- either through distribution methods that eliminate ads or through the loss of audience attention.  So the really interesting question is -- how should content providers make money?  And lets ask this question in its most difficult form -- how should our society support writing like the recent Washinton Post or New York Times articles that exposed excesses in the current administration?  Inherently this is not something that you can attach advertising to directly -- you have to support it through an association with other things (today classifieds) that will generate revenue.  So assuming we all think that this kind of reporting is essential to a democracy, how is it funded in the future?  If you can solve this problem, the issue of \"full\" vs. \"partial\" rss feeds will go away.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_12:33:45", "killed": false, "user_key": "ec59866f8e583487d6e4aa57c5cf2d29", "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}, "9630712": {"up_voted": false, "ip": "", "has_replies": false, "message": "Actually on PDAs and Smarphones is exactly when you want a full feed as another reader pointed out as you want to be able to read the full article then &amp; there without having to load it in your browser.<br><br>Skimming through even full RSS feeds should be easy like in Quicknews on my Treo I just hit space bar to jump to the next article so I can see the title, maybe pueruse the first paragraph, if it interests me I keep reading otherwise I hit space and continue on, also there is probably some option to shorten the article display in the summary or something that you could enable.<br><br>Advertising in blogs as a concept doesn't worry me when there is content to justify it but nothing annoys me more than seeing Google AdSense on blogs like Joe Blow's Blog especially if they have like three panels of AdSense and even more so if they have other advertising as well.<br><br>However even when the content is worth it the advertising can go over the top *cough*Engadget*cough*, why does a site owned by AOL need so much damn advertising?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_12:42:39", "killed": false, "user_key": "83e226e176a7a3e8266a385617666a2a", "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}, "9630713": {"up_voted": false, "ip": "", "has_replies": false, "message": "I looked at the previous comments and don't think this argument was mentioned. Everybody seems to be ignoring bandwidth costs. Sites like This Week in Tech claim to pay tens of thousands on their RSS bandwidth alone. Sites that fall under a corporate umbrella like Engadget can afford to pay that, but it's not a viable option for popular sites that don't have money to burn.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_12:50:07", "killed": false, "user_key": "3f513e2cf340de447da7d12d8497d7bc", "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}, "9630714": {"up_voted": false, "ip": "", "has_replies": false, "message": "Richard: Good point. On a bandwidth share to cost basis, RSS costs us 300$ per month. Since we're seeing about 80% monthly growth, that cost will start to balloon pretty quickly, and simply hoping people go to the website often isn't enough.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_12:57:49", "killed": false, "user_key": "490d926d48cdd8ab8349fe6206c02da4", "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}, "9630715": {"up_voted": false, "ip": "", "has_replies": false, "message": "Gee, here's a new topic that I haven't heard you rant on before. (Rolls Eyes).<br><br>Why can't you give freedom to others, in reading and publishing media as they want, on their terms. I happen to like partial text, gives me a quick overview, instead of pulling the whole darn thing down, if I want I clink in, I clink in. And if you want FULL then go Avantgo or other places where full is default. A sydicational format, is surprise, a syndicational format.<br><br>Why do bloggers demand the world conform to their little own navel-gazing world? Geesh, not everyone has the same needs or motivations as you do. And funny, I don't see you whining about Memetrackes, like Memeorandum which are all partial. Or is that your next rant?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_12:58:32", "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}, "9630716": {"up_voted": false, "ip": "", "has_replies": false, "message": "You have to put the audience first - and that means giving them as many choices as possible.  They want to read your articles in a feedreader, fine. They want to go to your site. Great.<br><br>Advertising has to come second.  You have to find ways to bring the ads to the readers, without annoying them or inconveniencing them or tricking them in any way.  Google thought this way, and made a lot of money. Blogs should think that way too.<br><br>If you don't please your audience, they will go somewhere else.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_13:03:42", "killed": false, "user_key": "4361e043e9de8e0772d842f07b9237f6", "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}, "9630718": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, you use NewsGator, right?  One thing I have found helpful for partial feeds that I decide I want to read (such as MSDN, microsoft watch) is the fetchlinks plugin, which is available at<br><a href=\"http://rssnewsapps.ziffdavis.com/msw.xml\" rel=\"nofollow\">http://rssnewsapps.ziffdavis.com/msw.xml</a><br><br>Basically, it gets the link from each feed and downloads the HTML from that page as the text for the entry.  Some other rss readers have a built-in option for this.  Fetchlinks does miss some links occasionally, but I find it better than nothing.  Also, Newsgator allows you to set whether to use fetch links on a feed by feed basis (on the rendering tab).<br><br>While I agree with your points for the most part, I can see reason not to include the full content of a feed.  Mainly from the perspective of MSDN, whose entries are very long sometimes.  I do think only doing partial feeds for the sake of advertising is bad reasoning however.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_14:15:13", "killed": false, "user_key": "b14e8402d60ae16eb3327eab2b2272ad", "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}, "9630719": {"up_voted": false, "ip": "", "has_replies": false, "message": "sorry.  bad link.  Must have hit the wrong button on copy/paste.  the link (which I got from newsgator's website is...<br><a href=\"http://graemef.com/?q=project/fetchlinks\" rel=\"nofollow\">http://graemef.com/?q=project/fetchlinks</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-02-22_14:16:24", "killed": false, "user_key": "b14e8402d60ae16eb3327eab2b2272ad", "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": "18347544", "user_id": "anonymous", "forum_id": "125200", "hash": 2017319549386013117}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "blog_herald_doesn8217t_understand_why_full_text_feeds_work", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18347544, "num_posts": 94, "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=blog_herald_doesn8217t_understand_why_full_text_feeds_work' +
		'&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/blog_herald_doesn8217t_understand_why_full_text_feeds_work/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='	+ 'blog_herald_doesn8217t_understand_why_full_text_feeds_work'
			+ '&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/blog_herald_doesn8217t_understand_why_full_text_feeds_work/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">94</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/blog_herald_doesn8217t_understand_why_full_text_feeds_work/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/blog_herald_doesn8217t_understand_why_full_text_feeds_work/">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/blog_herald_doesn8217t_understand_why_full_text_feeds_work/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:18347544" 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'				: 'blog_herald_doesn8217t_understand_why_full_text_feeds_work',
			// 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/blog_herald_doesn8217t_understand_why_full_text_feeds_work/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='	+ 'blog_herald_doesn8217t_understand_why_full_text_feeds_work'
			+ '&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='	+ 'blog_herald_doesn8217t_understand_why_full_text_feeds_work'
			+ '&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='		+ 'blog_herald_doesn8217t_understand_why_full_text_feeds_work'
				+ '&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/18347544/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-9630678">\
	 <div id="dsq-comment-header-9630678" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630678" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630678">Stefan Constantinescu</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630678" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630678" class="dsq-comment-message">Man it\'s been ages since I posted a comment, but anyway just to throw my 2 cents in here, the whole point of RSS is to read content when and where you want it.<br><br>RSS is the Tivo of information, the iTunes of text.<br><br>How would you feel if your tivo only recorded the first 15 minutes of a 2 hour movie? How would you feel if your iPod only had the first 30 seconds of a 4 minute song? Not too happy now would you.<br><br>Content needs, wants, and should be unleashed so that I don\'t even need a typical browser to read content anymore, just some device that takes an RSS feed.<br><br>I too am like you Scoble, the moment I subscribe to a feed and see that it\'s partial I just email the host, and unsubscribe.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630679">\
	 <div id="dsq-comment-header-9630679" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630679" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630679" href="http://www.markmacleod.com/" target="_blank" rel="nofollow">Mark MacLeod</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630679" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630679" class="dsq-comment-message">Great post, I was complaining about just this the other day.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630680">\
	 <div id="dsq-comment-header-9630680" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630680" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630680" href="http://www.techmount.com/" target="_blank" rel="nofollow">amorson</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630680" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630680" class="dsq-comment-message">Since switching from partial to full RSS feeds I didn\'t experience any change in advertising revenues.<br><br>Unlike me, many publishers do experience substantial decrease in revenue. The problem here is that it might push publishers to use in-content advertising that will be aggregated as legitimate content. I\'m not sure I\'m ready for that just yet.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630681">\
	 <div id="dsq-comment-header-9630681" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630681" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630681">Stefan Constantinescu</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630681" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630681" class="dsq-comment-message">Just to add one more thing, the content providers themselves are inherently screwed because the definition of "Content Provider" is rapidly changing thanks to blogs.<br><br>Once something hits the net, there will be someone who will churn out a clean, raw, usefull form of said content to be distributed amongst the people.<br><br>Bad website design, server timeouts, pop ups that hide content, none of that has been present in my world ever since I started using RSS about a year ago. The web browser will always be about surfing, but anyone serious about their news, and I know you and I Scoble are certified news addicts, will use an aggregator for everything.<br><br>The thing that will make full feeds obvious in the coming years will be the rise of eBook readers based on eInk technology. The whole definition of newspaper will change. Those people who read the New York Times or the Wall Street Journal on their eReaders will start a trend that will only grow. RSS will be THE ideal way of communicating content, and that\'s when you will see 75%+ people using RSS (without even knowing it too!)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630682">\
	 <div id="dsq-comment-header-9630682" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630682" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630682" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630682" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630682" class="dsq-comment-message">amorson: I\'ve had some publishers claim the same thing with me, but when I push them for proof they always back down and start hemming and hawing. The claim that full text feeds reduce revenue just DOES NOT stand up to scrutiny. Even if it were tried, only a small percentage of anyone\'s readers would switch to RSS. Even me, who has a much higher percentage of RSS readers than most sites has only a small percentage. And my traffic is growing. Three years ago I only had 2,000 readers a day. Now I\'m up to more than 10,000.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630683">\
	 <div id="dsq-comment-header-9630683" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630683" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630683" href="http://www.dealarchitect.typepad.com/" target="_blank" rel="nofollow">vinnie mirchandani</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630683" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630683" class="dsq-comment-message">Your long post is one justification for partial feeds. You can skim through many partials at a glance...I have gone back on forth on the issue of full v/s partial but why has it become so religious - if someone makes his sole decision on whether or not to read a blog based on if the feed is partial or full text, I would suggest the blog writer probably does not need that fickle reader...<br><br>Look at it from a blog writer\'s perspective. Should they write for the fringe reader or those that participate, comment, link etc? It\'s classic business  scenario - you want to cater to a core consumer base, and opportunistically to a casual customer base</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630684">\
	 <div id="dsq-comment-header-9630684" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630684" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630684" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630684" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630684" class="dsq-comment-message">Vinnie: you need a better news reader that lets you skim, even if posts are long. I only see headlines in mine, but first post is previewed.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630685">\
	 <div id="dsq-comment-header-9630685" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630685" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630685" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630685" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630685" class="dsq-comment-message">Vinnie: if you want traffic you must cater to the connectors, bloggers, and journalists. Here\'s a point: yesterday I had about 17,000 readers. If you want me to link to you (which will drive between 200 and 2,000 people to you, maybe more with a sensationalistic link) then you\'ll need to treat me well. Treat me badly and I\'ll be less likely to link to you. That might sound arrogant, but I have 840+ feeds that provide full text and that treat me well. Why do I need to read your partial-text feed? If you\'re the New York Times I might put up with that kind of abuse (and it IS abuse cause I want full text. I HATE partial text feeds. Hate them. Got that?)<br><br>You need a better RSS aggregator if you think partial text feeds are better.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630686">\
	 <div id="dsq-comment-header-9630686" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630686" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630686">Mike</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630686" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630686" class="dsq-comment-message">Keeping a blog alive after a while is a matter of accepting to write valuable content for free. If you are still doing that after a few months, then either you have got an agenda (derailing your competitors, drawing circles around you to protect your job as a marketing person, ...), or you are clueless, or you have way too much time in your hands. In both cases though, you pretend to be a journalist. What for? I have no idea. Perhaps it\'s an ego thing.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630687">\
	 <div id="dsq-comment-header-9630687" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630687" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630687" href="http://thelazyadmin.com/" target="_blank" rel="nofollow">Rodney Buike</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630687" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630687" class="dsq-comment-message">I think it depends on the kind of blog and the content.  There are some blogs that I am grateful for having full-text feeds and others I wish had them.  At the same time I can say the same for some full-text feeds that shouldn\'t be.<br><br>My personal blog supplies a full-text feed, but my website\'s RSS only provides an abstract and a link.  Some of the tutorials are long and full of graphic elements, if the abstract interests you, click the link, if not, you can skip it and you just saved us both some bandwidth.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630688">\
	 <div id="dsq-comment-header-9630688" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630688" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630688" href="http://www.dealarchitect.typepad.com/" target="_blank" rel="nofollow">vinnie mirchandani</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630688" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630688" class="dsq-comment-message">good point on reader technology which allows viewing of partial feeds...<br><br>on your second point, not every reader is Scoble. Too much of blog world is based on us feeding each other. The business IT audience I write for barely comments or links...but does read blogs...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630689">\
	 <div id="dsq-comment-header-9630689" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630689" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630689" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630689" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630689" class="dsq-comment-message">A few points for you:<br><br>1. YES, we see an increase in pageviews when we move to partial feeds.<br>2. YES, we see an increase in ad clicks when we move to partial text feeds.<br>3. Your argument that going full text encourages more people to visit the site, while also admitting that less than 1% of peopel actually use RSS, is a little circular.<br><br>And, finally, if we can\'t "prove" (note: I\'ve NEVER backed down from you on this discussion) that full text feeds result in less traffic to a website (which, really, is just common sense), then how are you going to PROVE that it somehow means more traffic?<br><br>Saying that you have gobs of traffic and you *might* read the blog, and then out of your 10 posts *might* link to it and that some of your readers *might* visit isn\'t motivation enough to most publishers.<br><br>Personally, I\'d rather give readers BOTH a full-text, ad supported feed AND a partial-text non-ad feed. Choice. But, either way, users are \'paying\' with their eyeballs to view the content. Which is the way it should be.<br><br>Also, I\'ve done 2 conferences this month already. Both of them were \'industry\' conferences (one marketing, one fashion). In both, RSS readership, blog readership AND blog authorship were above 30%.<br><br>It\'s growing in the mainstream. Maybe not in Cork (hello, the UK is well known to be behind the curve, no idea why you raised Cork as some bastion of normality). But it is growing.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630690">\
	 <div id="dsq-comment-header-9630690" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630690" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630690" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630690" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630690" class="dsq-comment-message">Vinnie: good point, which is why there are a ton of different kinds of aggregators. MyYahoo or <a href="http://Live.com" rel="nofollow">Live.com</a> is a ton different than IE 7 which is a ton different than RSS Bandit or FeedDemon which is a ton different than NewsGator which is a ton different than Dave Winer\'s OPML Editor/River of News. Some only display headlines. Some display river of news. Some do three-pane email style views.<br><br>I am not opposed to content producers providing BOTH full text and partial text feeds. On my cell phone I tell NewsGator to only bring partial text so that I can get the headlines faster, for instance. But it\'s MY CHOICE. I love choice! I hate it when a content producer thinks he or she knows how I\'ll read his or her content better than I do (or, worse, if he or she adds a business model decision into that).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630691">\
	 <div id="dsq-comment-header-9630691" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630691" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630691" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630691" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630691" class="dsq-comment-message">Jeremy: I don\'t believe you, but I guess you know better. Personally, when you link to me you don\'t send me much traffic at all, so not sure where all this traffic on your sites is.<br><br>But, that\'s beside the point.<br><br>I didn\'t say that. I said that if you want me to read your site, you need to provide full-text feeds. I\'m far more likely to link to people who have full-text feeds than those who have only partial text feeds. Why? Cause I read them more often.<br><br>I guess if you\'re doing fine without me, no reason to worry at all. Just keep doing what you\'re doing.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630692">\
	 <div id="dsq-comment-header-9630692" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630692" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630692" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630692" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630692" class="dsq-comment-message">&gt;Your argument that going full text encourages more people to visit the site, while also admitting that less than 1% of peopel actually use RSS, is a little circular.<br><br>No, it\'s not. Let\'s say I have 10,000 readers today. Let\'s say 1% of them read my blog in an RSS Aggregator. That still leaves, what, 9,900 in the Web browser, right? Now, what you and I both know is that those readers are not all the same. Some of those readers also have 10,000 readers. Let\'s say that\'s you. Do you read my blog in an aggregator? Based on how fast you answered here, I\'d guess yes.<br><br>So, now, not only are you much more likely to link to me cause you\'re pissed off at what I wrote, but you\'re much more likely to have 10,000 readers (like you have noticed, RSS users are highly likely to also be bloggers or journalists or connectors -- in my research they are FAR more likely to have 10,000 readers than those people who only read me in a browser).<br><br>So, now, let\'s say you link to me. That\'ll probably send me 2,000 people (if you had 10,000). So, now I have 2,000 more readers today that I otherwise would have had. Let\'s say those are 99% Web readers, and only 1% RSS readers. So, now, I have way more traffic.<br><br>Now, continue this out. Let\'s say I turned to partial text feeds and 10% of my RSS readers unsubscribed. What kind of hit is that to my traffic?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630693">\
	 <div id="dsq-comment-header-9630693" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630693" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630693" href="http://planetozh.com/" target="_blank" rel="nofollow">Ozh</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630693" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630693" class="dsq-comment-message">The thing is, full content feed are also good for traffic, as RSS indexing bots get more chance to index you well if they can actually read what\'s your writing about (and not only the 50 first words). That\'s point #1 out of <a href="http://frenchfragfactory.net/ozh/archives/2005/09/15/five-reasons-why-partial-content-feeds-suck/" rel="nofollow">5 reasons why partial content feeds sucks</a> :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630694">\
	 <div id="dsq-comment-header-9630694" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630694" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630694" href="http://www.ensight.org/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630694" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630694" class="dsq-comment-message">Robert, it doesn\'t work like that at all.<br><br>You have 10,000 readers. When you link, you send maybe 500 people. Of those, 10% will read again, and 10% will become "readers". So, 5 readers for your link.<br><br>"Now, continue this out. Let’s say I turned to partial text feeds and 10% of my RSS readers unsubscribed. What kind of hit is that to my traffic?"<br><br>Ahhh, here\'s the meat of it. Say 10% unsubscribe. But, if they are 40% more likely to click, the 90% of readers are generating much, MUCH more traffic than the 100%.<br><br>Yes, I know you\'ll go all "but what if those 10% were connectors" on me. It doesn\'t wash. I\'ve been in the game long enough to know that connectors are fickle, their audiences are fickle and that readership transference isn\'t as simple as 1 link. If it was, EVERYONE would have millions of readers.<br><br>Think about it. If EVERY link you sent had 10,000 people going to it, and if EVERY one of those became a reader, you\'d be turning hundreds of blogs into million-reader blogs EVERY month.<br><br>And you and I both know that just isn\'t happening. Yes, once every week or so you hop on a big "conversational thread" whereby some nobody gets a few dozen links.<br><br>Like that guy who was on top of <a href="http://wordpress.com" rel="nofollow">wordpress.com</a> for a few days. Now where is he? Nowhere.<br><br>Traffic doesn\'t equal readers. RSS subscribers don\'t equal traffic.<br><br>To say otherwise is to, again, get pretty circular. The reason you want full text RSS feeds is so you don\'t have to visit a site, after all.<br><br>And, as far as you not visiting or reading sites that have partial text feeds, the irony must be lost on you. The Blog Herald is one of our partial text sites.<br><br>And, as far as "so not sure where all this traffic on your sites is", our sites aren\'t for you. Sure, we have a few that fall into the techy realm, but most are for topics that A Listers and "connectors" don\'t care about: aviation, crocheting, personal finance, handmade creations, wrestling, etc.<br><br>That doesnt\' mean our traffic doesn\'t matter though :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630695">\
	 <div id="dsq-comment-header-9630695" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630695" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630695" href="http://dannysullivan.wordpress.com/" target="_blank" rel="nofollow">Danny Sullivan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630695" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630695" class="dsq-comment-message">Robert, too many sites interpret full text feeds to mean I\'m giving them the right to reprint my content. I\'m not. That why I don\'t do a full text feed.<br><br>Yep, I could put a copyright statement in the feed saying don\'t reprint everything, but people don\'t look at that. Heck, people reprint without permission right now even without a full text feed.<br><br>If someone has good content, I\'ll take the feed full text or not and clickthrough. Deciding that everyone must have full text feeds is simply assuming we are publishers who are all the same, and we simply are not.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630697">\
	 <div id="dsq-comment-header-9630697" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630697" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630697" href="http://www.ensight.org/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630697" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630697" class="dsq-comment-message">"Now, continue this out. Let’s say I turned to partial text feeds and 10% of my RSS readers unsubscribed. What kind of hit is that to my traffic?"<br><br>Actually I love this. Lots, and lots of people LIKE partial text feeds. They\'re skimmable (and, no, lots of people dont\' want to use feed readers that only give headlines - and saying they have to switch to get the efficiencies of full text feed reading is, well, ironic).<br><br>So, what if 10% of your traffic unsubscribes over time because your posts are too long?<br><br>It\'s a two-edged sword, which is why I\'m a proponent of having both full AND partial feeds. You get all the benefits of both. Readers get to choose what is best for them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630698">\
	 <div id="dsq-comment-header-9630698" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630698" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630698" href="http://www.campusfish.com/Jeff" target="_blank" rel="nofollow">Jeff</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630698" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630698" class="dsq-comment-message">This is pure speculation not based on any data. If you can prove to me that full text feeds result in more money, then I\'ll believe you.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630700">\
	 <div id="dsq-comment-header-9630700" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630700" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630700" href="http://tdavid.wordpress.com/" target="_blank" rel="nofollow">TDavid</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630700" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630700" class="dsq-comment-message">Despite the downsides, of which Jeremy and others have mentioned, I still want readers to be able to experience the content however they choose and that\'s why we use full text RSS. Not on every blog but most of our blogs. This is an inherent risk as a publisher I accept and every blogger, small to large is a publisher and gets to decide what risk they want to take.<br><br>I\'m not as black and white as you, Scoble when it comes to full text RSS but I do prefer full text because some readers help me shrink the content (like the Safari RSS reader) with a handy slider so I can see it in smaller chunks if I want.<br><br>Many of my posts are long, so a partial feed probably would cater to some percentage of readers but we\'ve even gone one step further for readers and made it so every keyword on our blog can become an RSS feed. Readers can get only the content they are interested in or suck on the firehose, it\'s up to them. They are in control. I like giving them that control.<br><br>Yes, Danny Sullivan, it means people rip off our content, retool and repurpose it and it finds its way to splogs galore, despite our copyright notice on every page and in the RSS feed.<br><br>Content being scraped and ripped from webpages without permission (a la the dishonest mashups) seems to be happening in this new Web We Rip Of You Point Oh revolution. So it just makes it easier for these thieves to steal your content when it\'s full text RSS, but it doesn\'t mean they still can\'t steal it right from your webpage.<br><br>There are three different concerns here: what to do about DMCA violations (publisher), how to give the reader what he wants (reader) and whether giving the reader full text RSS feeds has any significant impact on advertising (publisher).<br><br>I suspect those who worry more about giving the reader -- focusing on the content they are coming to see, instead of the content they aren\'t coming to see (advertising) -- what he wants will still be doing this in the years to come vs. those who try to squeeze every available penny out of their readers.<br><br>Scoble might be wrong about a number of things, but he does seem to care about readers and cares as a reader. I respect that and can see where readers like Scoble can be served and money can still be made.<br><br>Be careful of greed, folks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630701">\
	 <div id="dsq-comment-header-9630701" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630701" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630701" href="http://simondickson.wordpress.com/" target="_blank" rel="nofollow">SimonD</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630701" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630701" class="dsq-comment-message">I didn\'t get the whole \'full vs partial\' argument until I started browsing from a PDA whilst sitting on the train. The practicalities of your PDA getting a GPRS or 3G connection, pulling in the data at sub-broadband speed, and attempting to render the page you want (which probably isn\'t optimised for mobile browsing). And then doing it again for the next full story. Blimey. Still... I\'m glad I didn\'t pull this epic post in via PDA, full feed or not. That would have eaten my entire bandwidth allocation for the month. :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630702">\
	 <div id="dsq-comment-header-9630702" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630702" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630702" href="http://jaseone.wordpress.com/" target="_blank" rel="nofollow">jaseone</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630702" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630702" class="dsq-comment-message">Here is a good question related to this debate, is the purpose of your content to be read &amp; appreciated by as many people as possible or is it for you to make as much money through advertising revenue as possible?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630703">\
	 <div id="dsq-comment-header-9630703" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630703" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630703" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630703" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630703" class="dsq-comment-message">Jase: It\'s to be read by as many people as possible, while providing an income to our writers, so they can continue writing pieces that their audience wants to read.<br><br>This isn\'t about "greed". This is about a give and take business relationship. Readers get what they want (good content), how they want it (full or partial text feeds). And publishers and authors get what they want, which is eyeballs and the money necessary to sustain the content.<br><br>The only person losing out is the idealist, who wants content to be free, without ads, because it offends his sensibilities.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630704">\
	 <div id="dsq-comment-header-9630704" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630704" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630704" href="http://www.albinoblacksheep.com/flash/youare.swf" target="_blank" rel="nofollow">FrancisQ</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630704" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630704" class="dsq-comment-message">No wonder you get dissenting posts with a condescending tone like that...try spreading less of the \'we the Mircrosoft Empire\' vibe.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630705">\
	 <div id="dsq-comment-header-9630705" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630705" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630705" href="http://clsc.net/" target="_blank" rel="nofollow">claus</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630705" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630705" class="dsq-comment-message">Hi, frist post :)<br><br>With all due respect, I think you\'re speaking from personal preferences (you like the full feed / hate partial feed) and not from facts or even research.<br><br>Have you in fact conducted representative usability studies across a range of newsreaders, platforms, and topics? Have you conducted similar studies of ROI?<br><br>Don\'t bother, I know the answer, as you\'re not in research but in blogging. But, has anyone? At all?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630706">\
	 <div id="dsq-comment-header-9630706" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630706" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630706" href="http://tdavid.wordpress.com/" target="_blank" rel="nofollow">TDavid</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630706" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630706" class="dsq-comment-message">I disagree, Jeremy. For some publishers, it very much is about greed. Not saying that\'s you, but it certainly is the case for some out there. Some blogs are so whored up with ads -- both in the RSS feeds and on the websites -- that readers can\'t even tell where the content begins and advertising ends.<br><br>I don\'t mind full text RSS with ads, that seems like a fair tradeoff, but I do mind blogs where the focus on advertising overlaps and invades the reader experience.<br><br>This will just drive more readers to tools like GreaseMonkey and Norton\'s Antispam where the ads are stripped out. This scenario certainly doesn\'t benefit publishers as a whole.<br><br>Here there be tigers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630707">\
	 <div id="dsq-comment-header-9630707" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630707" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630707" href="http://www.geeknewscentral.com/" target="_blank" rel="nofollow">todd cochrane</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630707" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630707" class="dsq-comment-message">Robert you have hit the nail on the head with this article, I dont link nor do I read blogs that have partial RSS feeds, they are wasting my time. I never click on adsense ads even when i am in a browser but I do link to articles like this one and even post to articles like this one directly from my feed reader. Will I drive traffic to you absolutley will it be a lot who knows, but its traffic you may not have gotted otherwise.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630708">\
	 <div id="dsq-comment-header-9630708" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630708" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630708" href="http://dotnetjunkies.com/WebLog/paul/" target="_blank" rel="nofollow">paul</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630708" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630708" class="dsq-comment-message">My readers matter more then my page-view stats.<br>Newspapers have been sending readers to page 34 from page 1 for ages, just for the sake of advertisers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630709">\
	 <div id="dsq-comment-header-9630709" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630709" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630709" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630709" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630709" class="dsq-comment-message">TDavid: Agreed. We\'re really trying to balance a positive user experience with the earnest needs for writers to earn more than a few bucks a post. The challenge is that you can\'t do one without the writers. Favor writers too much (ie: too many ads) and you lose readers (and then writers). Favor readers too much (ie: no ads) and you lose writesr, and then readers.<br><br>For for-profit blog publishers (all kinds of publishers really, but blog publishers more than other types), RSS is the bread and butter of getting the word out there - but it can also kill you (server load, no return without ads in full text feeds, content theft, etc).<br><br>But I wouldn\'t trade it for the world. It\'s a great industry to be in!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630710">\
	 <div id="dsq-comment-header-9630710" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630710" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630710" href="http://forevervoyaging.blogspot.com/" target="_blank" rel="nofollow">Mike Drips</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630710" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630710" class="dsq-comment-message">Robert, this is an excellent post (especially since you got all the way through it without mentioning your phone du jour one time).<br>However, SimonD has an excellent point; namely PDAs and for that matter smart phones.<br>Do you actually want full RSS feeds on those devices? Personally I would go for full RSS on the desktop/laptop: yes...on PDAs and smart phones: no.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630711">\
	 <div id="dsq-comment-header-9630711" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630711" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630711" href="http://personalbee.blogs.com/ted" target="_blank" rel="nofollow">Ted Shelton</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630711" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630711" class="dsq-comment-message">The real debate here is not about full text vs partial text RSS feeds -- this is just a symptom.  The real debate is about what the future of content monetization is going to look like.  As you point out, people are increasingy tuning out of advertising anyway -- whether it is on a web page, in a feed, or anywhere else in media. Since the content industry has evolved largely on an advertising supported business model, naturally there is an enormous fear as this model dissipates -- either through distribution methods that eliminate ads or through the loss of audience attention.  So the really interesting question is -- how should content providers make money?  And lets ask this question in its most difficult form -- how should our society support writing like the recent Washinton Post or New York Times articles that exposed excesses in the current administration?  Inherently this is not something that you can attach advertising to directly -- you have to support it through an association with other things (today classifieds) that will generate revenue.  So assuming we all think that this kind of reporting is essential to a democracy, how is it funded in the future?  If you can solve this problem, the issue of "full" vs. "partial" rss feeds will go away.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630712">\
	 <div id="dsq-comment-header-9630712" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630712" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630712" href="http://jaseone.wordpress.com/" target="_blank" rel="nofollow">jaseone</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630712" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630712" class="dsq-comment-message">Actually on PDAs and Smarphones is exactly when you want a full feed as another reader pointed out as you want to be able to read the full article then &amp; there without having to load it in your browser.<br><br>Skimming through even full RSS feeds should be easy like in Quicknews on my Treo I just hit space bar to jump to the next article so I can see the title, maybe pueruse the first paragraph, if it interests me I keep reading otherwise I hit space and continue on, also there is probably some option to shorten the article display in the summary or something that you could enable.<br><br>Advertising in blogs as a concept doesn\'t worry me when there is content to justify it but nothing annoys me more than seeing Google AdSense on blogs like Joe Blow\'s Blog especially if they have like three panels of AdSense and even more so if they have other advertising as well.<br><br>However even when the content is worth it the advertising can go over the top *cough*Engadget*cough*, why does a site owned by AOL need so much damn advertising?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630713">\
	 <div id="dsq-comment-header-9630713" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630713" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630713" href="http://www.richbrownell.com/" target="_blank" rel="nofollow">Richard Brownell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630713" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630713" class="dsq-comment-message">I looked at the previous comments and don\'t think this argument was mentioned. Everybody seems to be ignoring bandwidth costs. Sites like This Week in Tech claim to pay tens of thousands on their RSS bandwidth alone. Sites that fall under a corporate umbrella like Engadget can afford to pay that, but it\'s not a viable option for popular sites that don\'t have money to burn.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630714">\
	 <div id="dsq-comment-header-9630714" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630714" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630714" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630714" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630714" class="dsq-comment-message">Richard: Good point. On a bandwidth share to cost basis, RSS costs us 300$ per month. Since we\'re seeing about 80% monthly growth, that cost will start to balloon pretty quickly, and simply hoping people go to the website often isn\'t enough.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630715">\
	 <div id="dsq-comment-header-9630715" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630715" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630715">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630715" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630715" class="dsq-comment-message">Gee, here\'s a new topic that I haven\'t heard you rant on before. (Rolls Eyes).<br><br>Why can\'t you give freedom to others, in reading and publishing media as they want, on their terms. I happen to like partial text, gives me a quick overview, instead of pulling the whole darn thing down, if I want I clink in, I clink in. And if you want FULL then go Avantgo or other places where full is default. A sydicational format, is surprise, a syndicational format.<br><br>Why do bloggers demand the world conform to their little own navel-gazing world? Geesh, not everyone has the same needs or motivations as you do. And funny, I don\'t see you whining about Memetrackes, like Memeorandum which are all partial. Or is that your next rant?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630716">\
	 <div id="dsq-comment-header-9630716" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630716" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630716" href="http://www.blog-relations.com/" target="_blank" rel="nofollow">Hugh Fraser</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630716" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630716" class="dsq-comment-message">You have to put the audience first - and that means giving them as many choices as possible.  They want to read your articles in a feedreader, fine. They want to go to your site. Great.<br><br>Advertising has to come second.  You have to find ways to bring the ads to the readers, without annoying them or inconveniencing them or tricking them in any way.  Google thought this way, and made a lot of money. Blogs should think that way too.<br><br>If you don\'t please your audience, they will go somewhere else.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630718">\
	 <div id="dsq-comment-header-9630718" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630718" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630718">Dan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630718" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630718" class="dsq-comment-message">Robert, you use NewsGator, right?  One thing I have found helpful for partial feeds that I decide I want to read (such as MSDN, microsoft watch) is the fetchlinks plugin, which is available at<br><a href="http://rssnewsapps.ziffdavis.com/msw.xml" rel="nofollow">http://rssnewsapps.ziffdavis.com/msw.xml</a><br><br>Basically, it gets the link from each feed and downloads the HTML from that page as the text for the entry.  Some other rss readers have a built-in option for this.  Fetchlinks does miss some links occasionally, but I find it better than nothing.  Also, Newsgator allows you to set whether to use fetch links on a feed by feed basis (on the rendering tab).<br><br>While I agree with your points for the most part, I can see reason not to include the full content of a feed.  Mainly from the perspective of MSDN, whose entries are very long sometimes.  I do think only doing partial feeds for the sake of advertising is bad reasoning however.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630719">\
	 <div id="dsq-comment-header-9630719" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630719" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630719">Dan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630719" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630719" class="dsq-comment-message">sorry.  bad link.  Must have hit the wrong button on copy/paste.  the link (which I got from newsgator\'s website is...<br><a href="http://graemef.com/?q=project/fetchlinks" rel="nofollow">http://graemef.com/?q=project/fetchlinks</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630720">\
	 <div id="dsq-comment-header-9630720" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630720" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630720" href="http://mindlessramblings.hopto.org/" target="_blank" rel="nofollow">weiyen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630720" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630720" class="dsq-comment-message">i agree whole heartedly with full feeds. What i don;t understand is that on the scobleizer rss feed in bloglines its still showing partial even though i set it to full....:S</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630721">\
	 <div id="dsq-comment-header-9630721" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630721" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630721" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">scobleizer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630721" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630721" class="dsq-comment-message">weiyen: what news reader are you using?<br><br>Jeremy: when I linked to <a href="http://Podtech.net" rel="nofollow">Podtech.net</a> I sent him more than 10,000 unique viewers (according to him). So, at least some of my links pull a sizeable audience.<br><br>Christopher: I don\'t read memetrackers in RSS. I visit a handful of pages in Web browsers cause they change too often.<br><br>Also, I\'m not saying you ONLY have to provide full text feeds. I\'m perfectly happy if a content owner provides both full text and partial text feeds.<br><br>Mike: some feeds I want partial, some I want full (most I want full, though, even on my smart phone).<br><br>Yeah, I gotta use the FetchLinks product. I keep forgetting to load that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630722">\
	 <div id="dsq-comment-header-9630722" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630722" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630722" href="http://contentious.com/" target="_blank" rel="nofollow">Amy Gahran</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630722" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630722" class="dsq-comment-message">Hi, Robert<br><br>I respect your perspective, but I\'d suggest that your personal preference for full-text feed is just that -- one person\'s preference; not a sound basis for blanket advice to online publishers.<br><br>In my case, I\'ve chosen not to offer a full-text feed for <a href="http://Contentious.com" rel="nofollow">Contentious.com</a> and <a href="http://RightConversation.com" rel="nofollow">RightConversation.com</a> for several reasons. These are:<br><br>1) Partial feeds (and e-mail alerts based on those feeds) are the only way I  can get clickthrough information about which of my articles are most popular -- one of my most valuable tools for planning and refining my content strategy.<br><br>2) Like you, I often write at a length which is unwieldy for common feed reader tools and services. I don\'t think telling people to "get a better feed reader" is very constructive for building a relationship with your audience.<br><br>3) My content already gets stolen and plagiarized often. I do consider that a problem, and I believe a full-text feed would only exacerbate that problem.<br><br>4) One core purpose of my blogs is to market my professional services. I choose not to cram every blog posting (or feed item) with marketing messages, but I do need to make that marketing connection. If people have no reason to visit my site, I don\'t get that benefit.<br><br>I realize you probably disagree with some or all of these considerations, and that\'s fine. Still it seems to me that your arguments in favor of all online publishers offering full-text feeds is based solely in your preference.<br><br>Personally, I think this consideration can vary widely by publication, goal, and target audience.<br><br>Thanks,<br><br>- Amy Gahran<br>  <a href="http://Contentious.com" rel="nofollow">Contentious.com</a><br>  <a href="http://RightConversation.com" rel="nofollow">RightConversation.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630723">\
	 <div id="dsq-comment-header-9630723" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630723" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630723" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">scobleizer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630723" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630723" class="dsq-comment-message">Amy: to be clear, this is my opinion and I do realize that other people don\'t agree with it. That\'s cool.<br><br>I wish you had full text feeds cause I want to read your content, but the competition for my time is fierce, so I\'ll stick with only full-text feeds, sorry.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630724">\
	 <div id="dsq-comment-header-9630724" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630724" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630724" href="http://contentious.com/" target="_blank" rel="nofollow">Amy Gahran</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630724" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630724" class="dsq-comment-message">That\'s totally fine, Robert. And while I appreciate the occasional attention you\'ve given my work, ultimately you don\'t represent my target audience. I need to set my priorities and make my decisions according to my goals and my target audience.<br><br>- Amy Gahran</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630725">\
	 <div id="dsq-comment-header-9630725" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630725" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630725" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">scobleizer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630725" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630725" class="dsq-comment-message">Amy: that\'s cool. I do see your work pop up occassionally in Memeorandum (which means other bloggers are watching your stuff, even if I don\'t want to).<br><br>Thanks for considering my points.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630726">\
	 <div id="dsq-comment-header-9630726" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630726" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630726">Rich</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630726" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630726" class="dsq-comment-message">Danny, thank you! That\'s exactly what I was going to say.<br><br>Yes, scraping will always happen. But full-text RSS just makes it way too easy for the sploggers, and it\'s doubly bad because some do it and don\'t even realize it\'s wrong - they think that\'s what RSSyndication was made for.<br><br>I would put ads in my feed, but:<br><br>1. It doesn\'t work (financially).<br><br>2. I do want people to syndicate my headlines and partial text, which doesn\'t work with ads.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630727">\
	 <div id="dsq-comment-header-9630727" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630727" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630727" href="http://www.newsgator.com/" target="_blank" rel="nofollow">Jack Brewster</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630727" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630727" class="dsq-comment-message">Re: FetchLinks<br><br>The next version (2.6, currently in beta) of NewsGator for Outlook includes this functionality built in.  Check out the feature intro posted by the lead dev:<br><a href="http://www.newsgator.com/forum/shwmessage.aspx?forumid=24&amp;messageid=12513" rel="nofollow">http://www.newsgator.com/forum/shwmessage.aspx?...</a><br><br>For more details on the 2.6 beta, see this post:<br><a href="http://www.newsgator.com/forum/shwmessage.aspx?ForumID=24&amp;MessageID=12482" rel="nofollow">http://www.newsgator.com/forum/shwmessage.aspx?...</a><br><br>Disclaimer: I am a NewsGator employee</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630728">\
	 <div id="dsq-comment-header-9630728" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630728" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630728" href="http://www.richbrownell.com/" target="_blank" rel="nofollow">Richard Brownell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630728" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630728" class="dsq-comment-message">Amy: You don\'t sound contentious to me ;)<br><br>Robert: I\'m interested in hearing your thoughts on bandwidth costs in regards to RSS. Should Jeremy Wright pay more than his $300/month in the competition for your attention? This Week in Tech pays tens of thousands on their full text feed for your attention. They have to make their time to live value a whopping 12 hours to cut down on requests (though many RSS readers supposedly ignore TTL)<br><br>You know, I would go so far as to say with RSS\'s bandwidth intensive stupid distribution model, the internet is simply not ready for full text RSS. Bandwidth is far too intensive. I think nobody has the right to tout full text feeds as essential and tell others to do that until you get your own server and start posting the bill for your RSS feed.<br><br>That is, unless your vision of the future is an internet made solely of bloggers on wordpress, typepad, and blogger.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630729">\
	 <div id="dsq-comment-header-9630729" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630729" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630729">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630729" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630729" class="dsq-comment-message"><i>Personally, I think this consideration can vary widely by publication, goal, and target audience.</i><br><br>Totally. But lazy bloggers demand the world spoon-fed them info. But missing important news as it just not full-text feeded, strikes me as well, stupidly clueless and arrogant to boot. Not a good practice either, as some of my best info sources are all partial.<br><br>Full, partial, snippet, abstract, hint, rumor, comment in passing, something overheard -- information is information, I am not going to have temper-tantrums over the format. This is yet another example why bloggers or citizen journo\'s will never replace real journalists. Unable to focus, or pinpoint the important, in the sea of information, they demand all now, no legwork needed.<br><br>HaloGate and RSSGate, even Scobles most diehard supporters are starting to think he\'s gone loopy. But thankfully, everyone is all ADD\'ed, so onto the next big thing.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630730">\
	 <div id="dsq-comment-header-9630730" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630730" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630730">Joe Public</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630730" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630730" class="dsq-comment-message">"the competition for my time is fierce, so I’ll stick with only full-text feeds, sorry."<br><br>My advice to you Mr. Scoble: Never forget how high your horse is, the higher it grows, the harder the fall.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630731">\
	 <div id="dsq-comment-header-9630731" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630731" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630731">Melanie Taylor</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630731" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630731" class="dsq-comment-message">I think Joe Public has a point.<br><br>What worries me is the amount of Internet energy someone like Scoble manages to shift. As if any of what he had to say was REALLY that important in life.<br><br>Like British plawright David Hare once said in his play \'My Zinc Bed\': "like Rome, Microsoft will also fall" which is actually similar to what my gran used to say when I was a girl, albeit in her own sort of way: "don\'t matter how well-to-do them folks think they are, they\'ll all end up 12 feet under like the rest of us".</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630732">\
	 <div id="dsq-comment-header-9630732" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630732" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630732" href="http://jaseone.wordpress.com/" target="_blank" rel="nofollow">jaseone</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630732" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630732" class="dsq-comment-message">About the bandwidth argument, at the moment Scoble\'s feed is 124,449 bytes and when served via Gzip sends 31,531 bytes across the wire, bandwidth is usually measured in GB and as a baseline lets say costs 50c per GB even though you can probably get it even cheaper.<br><br>Scoble\'s feed could be served up a total of 34,053 times for 50c of bandwidth:<br><br>1,073,741,824 bytes (1GB) / 31,531 bytes = 34,053.529<br><br>So for a typical month of 30 days, over 30,000 reads of the RSS feed a day would cost only $15. Now if you use a dedicated file serving plan for something like $60/month that gives you 500GB of bandwidth a month and generate a cache of your RSS feed there you would be able to support something like 480,000 reads of the RSS file a day based upon Scoble\'s current feed size.<br><br>Just how popular are the sites quoting $10,000 bandwidth bills?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630733">\
	 <div id="dsq-comment-header-9630733" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630733" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630733" href="http://kcmarshall.typepad.com/" target="_blank" rel="nofollow">Kevin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630733" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630733" class="dsq-comment-message">Sing it brotha\'; I couldn\'t agree more!<br><br>Here\'s my case for full text feeds:<br>I worship Jon Udell.  My opinion of him as a technologist and as a person couldn\'t be higher.  Still I don\'t read his blog that often - probably less than weekly.  I read a lot of less-worthy blogs on a daily basis.<br><br>Why?  Because his feed isn\'t full text.  I have a mental block from even checking his feed for new content.  A partial-text makes me stop and think about each post "Click or skip?"  Full-text lets me plow right through.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630734">\
	 <div id="dsq-comment-header-9630734" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630734" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630734" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630734" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630734" class="dsq-comment-message">jase: If everyone ran 60$/month servers, every site would be down a LOT more than it is. Our servers run us 250$/month right now, and that\'s pretty cheap.<br><br>Also, at 17$/day, that\'s a hefty bill for ONE mildly trafficked blog. Now imagine content producers with 20 Scoble\'s, and all of a sudden you\'re in the 400$/DAY range (12K/month).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630735">\
	 <div id="dsq-comment-header-9630735" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630735" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630735" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630735" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630735" class="dsq-comment-message">Ignore my math, I misread your sentence. Still, the point is the salient. Scoble doesn\'t really have that much traffic. Also, what would Scoble\'s feed look like if it had images in every post (as more and more blogs are doing). Instead of 30K Gzipped, it\'d be 300K. And all of a sudden you\'re talking different figures entirely (especially if, instead of 10,000 subscribers you have 50,000 or 500,000).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630736">\
	 <div id="dsq-comment-header-9630736" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630736" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630736" href="http://www.thevisionthing.com/" target="_blank" rel="nofollow">Ethan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630736" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630736" class="dsq-comment-message">"Mike: some feeds I want partial, some I want full (most I want full, though, even on my smart phone)."<br><br>But you said you wouldn\'t subscribe to ANY partial feeds. More than once in the post, in fact. So which is it?<br><br>And is Tech.Memeorandum destined for the scrap heap? Or are they sending out a full feed that I am unaware of?<br><br>Just asking, carry on.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630737">\
	 <div id="dsq-comment-header-9630737" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630737" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630737" href="http://jaseone.wordpress.com/" target="_blank" rel="nofollow">jaseone</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630737" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630737" class="dsq-comment-message">For just file serving you don\'t need a fancy server, for high traffic sites you really should be caching your content and serving it from a separate server.<br><br>I\'m guessing that is why comments often dissappear for short periods here on <a href="http://Wordpress.com" rel="nofollow">Wordpress.com</a> as the caching mechanism must have a few kinks in it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630738">\
	 <div id="dsq-comment-header-9630738" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630738" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630738" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">scobleizer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630738" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630738" class="dsq-comment-message">Ethan: on my desktop machine I don\'t subscribe to anything but full. I won\'t subscribe to anything that doesn\'t at least make full feeds available (and haven\'t, if you look at my NewsGator feed list). But, on my cell phone I can set NewsGator to only display partial text feeds. So, I have a choice.<br><br>Jeremy: I use a free blogging service. Maybe if the costs are too high for you you should consider a free service like Blogger, MSN Spaces, <a href="http://WordPress.com" rel="nofollow">WordPress.com</a>. :-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630739">\
	 <div id="dsq-comment-header-9630739" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630739" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630739" href="http://freitasm.wordpress.com/" target="_blank" rel="nofollow">freitasm</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630739" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630739" class="dsq-comment-message">You will also be giving away your content to hundreds of splogs around, that will make money of your hard work, since these days lots of the scrappers get better listings on Google and Technorati.<br><br>No to full listing!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630740">\
	 <div id="dsq-comment-header-9630740" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630740" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630740" href="http://www.madeforone.com/" target="_blank" rel="nofollow">Donal Reddington</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630740" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630740" class="dsq-comment-message">I was at IT@Cork (the tech session after lunch) when you asked how many people used RSS aggregators - maybe you would have got a bigger response than 2% if you had asked \'how many published content with RSS?\'.<br><br>The low response might be connected to simple time pressures.  Frequently updating feeds on an aggregator and reading through them all can be low on the to-do list when there are so many other demands on time.<br><br>We could do with a 26 hour day over here.<br><br>I don\'t have strong opinions on the full/partial feed argument, but I do think that RSS will only become widely popular among casual internet users (who don\'t work in IT) when an aggegator is included as standard (not a plugin or third party add-on) in Office.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630741">\
	 <div id="dsq-comment-header-9630741" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630741" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630741" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630741" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630741" class="dsq-comment-message">Robert: What are you on? Move to Wordpress.com? And give up all control, all advertising, all our custom applications, all syndication control AND be subject to someone else\'s downtime?<br><br>That\'s the stupidest thing you\'ve said in this thread. Would that be your recommendation to the NYT too? Move their services to Xanga?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630742">\
	 <div id="dsq-comment-header-9630742" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630742" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630742" href="http://abundance.wordpress.com/" target="_blank" rel="nofollow">Jeremy Wright</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630742" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630742" class="dsq-comment-message">Also, Scoble, you get perks with your free blogging service that no other user of <a href="http://WP.com" rel="nofollow">WP.com</a> gets. Like your own template. And Matt\'s cell number.<br><br>We couldn\'t PAY someone to give us the service and customization we require. And we tried, we worked with the Yahoo folk for over 2 weeks trying to make it all fit and it just didn\'t. We, as a growing content business, needed more than Yahoo can give. And you think MSN Spaces is somehow going to work?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630743">\
	 <div id="dsq-comment-header-9630743" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630743" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630743" href="http://mindlessramblings.hopto.org/" target="_blank" rel="nofollow">weiyen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630743" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630743" class="dsq-comment-message">Hi Scoble,<br><br>I\'m using Bloglines.I set it to complete entries on your subscription, but it still shows a few lines...perhaps it could be a setting in Wordpress? I checked Dave Winer\'s feed at <a href="http://scripting.wordpress.com" rel="nofollow">scripting.wordpress.com</a> and that works fine.<br><br>I love the article about growing your blog audience. Going to give it a go. :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630744">\
	 <div id="dsq-comment-header-9630744" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630744" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630744" href="http://www.bluedoglimited.com/" target="_blank" rel="nofollow">Maurice</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630744" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630744" class="dsq-comment-message">Partial or full?  Why does this always pop up as a hot topic?<br><br>It doesn\'t matter one iota if you\'re talking about "protecting" content or increasing/reducing readership.  It all boils down to what you like to read and how that material gets to your screen.  Do you like to have it there waiting for you?  Or would you rather only retrieve the items you really want to read?<br><br>Keep in mind this discussion is about human preferences.  From an automated sense (i.e. what your rss reader can offer), big deal... as long as the feed has a  back to the parent document, the full content is retrievable.  It takes a fraction of a second for a program to pull the url from the link element and request the document.  Done - the content is retrieved.<br><br>For an honest application, this means the content is placed alongside the feed\'s item so that the reader doesn\'t have to click on a link to view the entire article.  As an example, my rss reader, intraVnews, does this exact same thing.  I subscribe to a wider variety of partial feeds - some of them I prefer to leave them as partial, for others that I historically enjoy reading the full articles I simply instruct intraVnews to retrieve the full item.  If your reader can\'t download a full item, get a new reader... don\'t take it out on the publisher, though.<br><br>On the flip side, this automated process in the hands of the less honest is a problem, but that is a problem that is defined by the RSS protocol. If you publish information and contain a link to a parent document, the process of cloning content is a no-brainer... partial or full rss feeds are effectively no different (unless your parent documents require authentication to access, but that is a different issue altogether).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630745">\
	 <div id="dsq-comment-header-9630745" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630745" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630745" href="http://www.richbrownell.com/" target="_blank" rel="nofollow">Richard Brownell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630745" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630745" class="dsq-comment-message">Jeremy: I agree. It is absolutely ridiculous to suggest that anybody but personal blogs be hosted on free blog services. Companies need their own identity. I\'m going to take a wild guess and assume there is no chapter in Naked Conversations that suggests Apple move their site to <a href="http://apple.typepad.com" rel="nofollow">apple.typepad.com</a> or myspace.com/apple. They could take their files and serve them from a free file hosting service and use Yahoo! to host their online store. Then Apple will never have web costs again! No, if a chapter like that exists in Naked Conversations, then the entire book\'s relevancy is down the toilet. And be aware Scoble, that is exactly what you just suggested. Consider it blogged: <a href="http://www.richbrownell.com/page.php?id=198" rel="nofollow">http://www.richbrownell.com/page.php?id=198</a><br><br>jaseone: There are sites that get bills that high. TWiT is one of them and their RSS is already served from a separate server. You are underestimating how many hits RSS gets.<br><br>On a related note, the Mix 06 RSS is partial text. I guess Scoble doesn\'t want like-minded individuals to attend.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630746">\
	 <div id="dsq-comment-header-9630746" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630746" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630746" href="http://www.problogger.net/" target="_blank" rel="nofollow">Darren</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630746" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630746" class="dsq-comment-message">good discussion with valid points all round in my opinion.<br><br>In an ideal world I\'d make my feeds full text every time - I see a lot of advantages in it even though I prefer to read partial feeds in my news aggregator (and I set them to only show me a title and first paragraph or two so I can scan them).<br><br>However, every day I find another splog using my feeds to generate content for their blogs - quite often with no attribution and no links back. At least with partial feeds they\'re only publishing my first paragraph or two.<br><br>The other element I\'ll throw into the mix is that if your content is good enough and you give people a reason to read your blog - they will.<br><br>This is illustrated by Robert following his brother\'s blog - he wants to know what he\'s got to say to the point he\'s willing to go out of his way to do so.<br><br>I find this is the case on my blog with some readers who tell me that I am the only partial feed they follow. Yep I\'ve obviously lost some readers like Robert, but I guess that\'s a risk I\'m willing to take. It doesn\'t seem to have hurt me so far :-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630747">\
	 <div id="dsq-comment-header-9630747" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630747" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630747">Dmad</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630747" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630747" class="dsq-comment-message">the length of this post is reason enough to have partial feeds. Yawn!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630748">\
	 <div id="dsq-comment-header-9630748" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630748" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630748">Dmad</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630748" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630748" class="dsq-comment-message">I view partial feeds much like the 3 line preview of messages in outlook. If you don\'t get my attention with the first 3 lines of your email, I don\'t open it. I likely delete it.  If you get my attention with the partial feed, I\'ll click through and read the rest..and voila!  I\'m now at your site, and if you\'ve done things right you probably have me hooked.  And isn\'t that the goal?  At least for commercial sites?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630749">\
	 <div id="dsq-comment-header-9630749" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630749" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630749" href="http://rsscases.marketingstudies.net/" target="_blank" rel="nofollow">raj</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630749" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630749" class="dsq-comment-message">When you make a bold statement like "Blog Herald doesn’t understand why full-text feeds work", you imply that all full-text feeds actually "work" and earn ad revenue, which of course is total nonsense. They may do so in the future, when someone comes up with a way to either successfully monetize full-text RSS feeds, or manages to make their site sticky despite offering full-text feeds.<br><br>And by the way, I won\'t subscribe to any feed that isn\'t partial-text :) I much prefer to browse, then get the full effect of the corresponding website. Except I keep envisioning something that might be out of some Blade Runner kind of world: an RSS reader that sequentially "plays" 3D holograms of stories.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630750">\
	 <div id="dsq-comment-header-9630750" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630750" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630750">bubba</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630750" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630750" class="dsq-comment-message">Hey Bobby, here\'s some real numbers based on a vertical community/information site with 250k uniques a month serving just over 10 million pages.  It\'s soley supported by advertising revenue, mostly from an in house network with a bit from Adsense that grosses well into six figures a year.  For a while they used RSS to distribute feeds for the forum (which many of them are sort of blogs) and current news/feature content.  During that time the feeds were offered, page views didn\'t seem to decrease, impressions didn\'t seem to decrease and CTR didn\'t seem to decrease and conversions on the target advertiser\'s sites didn\'t seem to change.  No one really seemed to care though some people used RSS the to keep an eye on the forums.  The forum content was also available via email updates and NNTP.  No one really used NNTP, some used RSS and many more used email, by a factor of 5 times or so compared to RSS.<br><br>Leaving the RSS on wasn\'t a big deal, until one thing.  An advertiser that was responsible for about 20% of the revenue plus a pretty big chunk in the parent corps trade mag of similar content started asking questions.  They didn\'t seem to like it or get it that the content was being provided, in full without the ads that they were specifically targeting for that content.  It was decided that until the staff had a chance to start shoveling the advertiser\'s rich media ads into the feed, they\'d stop the feed for the time being.<br><br>My point is this Bobby, it\'s pretty easy for you to dismiss people not using full feeds, or not providing any feeds when you don\'t have to make a living selling ads on your site having to appease both media buyers and community members.  Your site is not selling impressions and eyeballs and the people that run the site I mentioned had to decide on enabling a feature that hardly anyone in that community uses vs. generating some disdain from the people actually sending in the cash.  It ain\'t all about you, babe.  A business needs to make decisions based on what they know and how they feel, not on what some techno pundits think that don\'t have a financial stake at risk.  The choice of having to risk 10\'s of thousands in revenue vs. not being linked by a third party that does not contribute to the revenue stream is a pretty easy choice to make.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630751">\
	 <div id="dsq-comment-header-9630751" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630751" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630751" href="http://www.posthegemony.org/" target="_blank" rel="nofollow">Jon</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630751" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630751" class="dsq-comment-message">Jeremy, just one thing: the people of Cork would be surprised to learn that you believe they are part of the UK.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630752">\
	 <div id="dsq-comment-header-9630752" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630752" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630752" href="http://blog.leveragedpromotion.com/" target="_blank" rel="nofollow">Rodney Rumford</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630752" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630752" class="dsq-comment-message">WOW, The debate is hot and heated.<br><br>I think the one thing that publishers should be aware of is the user experience. As a publisher of content I would want the user to have the best possible experience so I would always recommend publishing full feeds for this reason.<br><br>You have to understand that many publishers have no desire whatsoever to monetize their content in the traditional advertising model form (PPC or ads).<br><br>Perhaps the publisher makes thier money by delivering quality value added content to their user base or target customer base. The readers become evangelist, or extends the WOMM (word of mouth marketing). The customers become more loyal...etc...they increase sales.<br><br>Publish full content and extend the brand and don\'t try to make a dime from advertising is a model that works for many businesses. They let everyone syndicate the full content.<br><br>This is why a full RSS Content Delivery Strategy needs to be designed before businesses start blogging to make sure they can deliver what the audience wants.<br><br>My vote is for full feed content.<br><br>Rodney Rumford<br><a href="http://leveragedpromotion.com" rel="nofollow">http://leveragedpromotion.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630753">\
	 <div id="dsq-comment-header-9630753" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630753" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630753">solomonrex</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630753" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630753" class="dsq-comment-message">"too full of smart people", I think you mean too full of self-absorbed arrogant people.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630754">\
	 <div id="dsq-comment-header-9630754" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630754" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630754" href="http://www.seobuzzbox.com/duplicate-content-google.html" target="_blank" rel="nofollow">Aaron Pratt</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630754" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630754" class="dsq-comment-message">I don\'t have time to read all the comments or the entire post but let me just say that using full text over partial feeds gives you a duplicate content penalty in Google if a news aggregator copies your text.  This eventually pushes your weenie blog down into supplemental results in the search engines (mainly google) where you suffer, never getting your head above water. If you are not a weenie blogger you have "authority" which allows you to go forth and prosper in the engines. The main reason partial feeds have to be used by the rest of us Robert.  I know, most people do not care or notice this stuff...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630755">\
	 <div id="dsq-comment-header-9630755" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630755" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630755" href="http://www.conchbbs.com/" target="_blank" rel="nofollow">Scott Royall</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630755" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630755" class="dsq-comment-message">Robert,<br><br>I am not going to slog through all 91 comments, but it seems that no one has yet made the observation that distinishing between aggregators and browsers may prove meaningless with time. We already see beginnings of integration in browsers like IE 7 and Firefox.<br><br>There\'s also integration coming from the other direction. My current RSS reader of choice is SharpReader, your typical tri-pane MDI app. The lower-right pane is the expected blog web page itself. You are reading this comment written in that pane. In fact, the third pane is simply an instance of IE. I often use it to tweak my own blog after emailing an entry in (MSN is still clueless about what to do with that burst of Word formatting data at the top of each entry). I\'ll also link off a blog page to follow up something without leaving the pane.<br><br>I therefore reject the thought that the future of RSS is an either/or proposition. Indeed, I think aggregators and browsers have to merge if we want people like our mothers joining the audience pool.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630756">\
	 <div id="dsq-comment-header-9630756" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630756" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630756" href="http://www.wistex.com/" target="_blank" rel="nofollow">Scott M. Stolz</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630756" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630756" class="dsq-comment-message">I\'ve been debating the full-feed / partial feed thing myself.  On one of my sites, I decided to use partial feeds because quite frankly the feeds on that particular site weren\'t targeted at people using newsreaders.  What I was aiming for was other websites picking up the feed and displaying my headlines, all of which link back to my website.  And with the feed only being there a couple weeks, I already have websites displaying my feed on their websites.<br><br>When you talk about feeds, you seems to assume that the only consumers are people using newreaders.  In many cases, the consumers are other websites publishing your feed.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630757">\
	 <div id="dsq-comment-header-9630757" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630757" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630757" href="http://obvio171.wordpress.com/" target="_blank" rel="nofollow">Helder</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630757" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630757" class="dsq-comment-message">Aside from the great reasons you gave why full-text feeds are better, they\'re also the *only* type of feeds that can get subscribed to BlogBurst:<br><br>"Blog Requirements:<br><br>    * Full text syndication feed in RSS or Atom; most common blogging systems will work fine"</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630758">\
	 <div id="dsq-comment-header-9630758" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630758" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630758" href="http://blog.timc3.com/" target="_blank" rel="nofollow">Tim Child</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630758" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630758" class="dsq-comment-message">Excellent post but I think there is another reason that Companies and users don\'t always like full feeds and that is branding.<br><br>So I put up an article on my blog about it:<br><br><a href="http://blog.timc3.com/archives/297" rel="nofollow">http://blog.timc3.com/archives/297</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630759">\
	 <div id="dsq-comment-header-9630759" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630759" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630759" href="http://rss.monroe-kc.com/" target="_blank" rel="nofollow">James Monroe</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630759" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630759" class="dsq-comment-message">The bigger conversation around clipped feeds of interesting information makes you click through.<br><br>I use RSS to gather information quickly about topics that are business and interest driven.  If I have to click thru then I\'m wasting time.<br><br>Another thing about full feeds I can tell pretty quickly if I need to read the rest of the post or not.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630760">\
	 <div id="dsq-comment-header-9630760" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630760" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630760" href="http://www.wistex.com/" target="_blank" rel="nofollow">Scott M. Stolz</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630760" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630760" class="dsq-comment-message">One problem with full feeds though is other websites can now reprint your entire article for free on their website and users never have to click through to your website.  Its an easy way for competing websites to steal content.<br><br>Imagine if news organizations all published full feeds?  Their news would appear on tons of websites and people would never have to click back to the news website.  Imagine how much money these news websites would lose in advertising when people no longer have to visit their website to read the news.<br><br>This more applies to non-blog websites publishing RSS feeds, though, but it would still be a concern for blog websites.  Full feeds are NOT just used in feed readers by techies, they are also used on third-party websites to provide content from outside sources.<br><br>Although this could be used as an advantage if that was your goal.  If your non-blog or blog website published an RSS feed with the entire article, you could encourage non-blog websites to published a automatically changing syndicated column on their website using XML-to-HTML and RSS technologies.  You would just have to make sure that there were branding and links in the article itself to insure that most websites would still link back to you.  Unscrupulous websites could still scrap your name and link and branding off of it, but most wouldn\'t.<br><br>So if you published full feeds, be aware that it might just appear... in full... on someone else\'s website.  If that\'s okay with you, publish a full feed.  It could be an advantage if you brand it and provide links to your website.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630761">\
	 <div id="dsq-comment-header-9630761" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630761" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630761" href="http://webdescript.com/blog/mudge/" target="_blank" rel="nofollow">Nick Mudge</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630761" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630761" class="dsq-comment-message">Thanks Scoble. This is some really good data.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630762">\
	 <div id="dsq-comment-header-9630762" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630762" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630762" href="http://mindlessramblings.hopto.org/" target="_blank" rel="nofollow">weiyen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630762" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630762" class="dsq-comment-message">hi scoble,<br>regarding the full text feed, i wonder whether the settings on your wordpress blog has it set....to that. Under options...in the dash board under reading you have the option for full text or summary.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630763">\
	 <div id="dsq-comment-header-9630763" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630763" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630763" href="http://reblogger.wordpress.com/" target="_blank" rel="nofollow">Mark Wilson</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630763" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630763" class="dsq-comment-message">I totally think full feed is the way to go.  What\'s holding us back is the old mindset.  I blog about this here:<br><br>Blog content ownership and control<br><a href="http://reblogger.wordpress.com/2006/02/08/blog-content-ownership-and-control/" rel="nofollow">http://reblogger.wordpress.com/2006/02/08/blog-...</a><br><br>FeedFlare - building longevity into blog posts<br><a href="http://reblogger.wordpress.com/2006/03/01/feedflare-building-longevity-into-blog-posts/" rel="nofollow">http://reblogger.wordpress.com/2006/03/01/feedf...</a><br><br>In essence the change over will come if we design and change the way we think so that we accept permanent ownership of the post by the creator and earns for the creator for years afterwards (unlike artwork where the item leaves the creator and never earns for the creator again).<br><br>As long as we design for this, by retaining a connection with every copy of the post - no matter where it goes, for how long or how it is used - then we will have resolved the problem people have about giving out full feeds.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630764">\
	 <div id="dsq-comment-header-9630764" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630764" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630764" href="http://www.rsscache.com/" target="_blank" rel="nofollow">Benjamin Berube</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630764" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630764" class="dsq-comment-message">I would like to comment on the bandwidth issue of RSS.  Like some mentionned previously, there do is a concern regarding RSS (feeds) and their bandwidth usage.  Currently only 8% of Internet users know what RSS are, but with all the browser-RSS integration that are coming up (like IE7), this number will increase a lot.<br><br>We have come up with a solution called RSScache.  It actually cut down bandwith usage by about 90%.  RSScache is targeted at enterprises and webmasters that have low to high RSS traffic.  If you have bandwidth concerns (or need an effective RSS caching system to speed up your requests), take a look on our site: <a href="http://www.rsscache.com" rel="nofollow">http://www.rsscache.com</a><br><br>Hope this can help some of you!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630765">\
	 <div id="dsq-comment-header-9630765" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630765" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630765" href="http://www.typeinternational.com/" target="_blank" rel="nofollow">fahad</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630765" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630765" class="dsq-comment-message">Home based Internet research Jobs<br><br>We are now hiring home based workers to complete simple online research assignments.<br><br>No selling – no recruiting – no adplacing<br><br>For details visit<br><br><a href="http://www.typeinternational.com/idevaffiliate/idevaffiliate.php?id=3168_33_3_69" rel="nofollow">http://www.typeinternational.com/idevaffiliate/...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630766">\
	 <div id="dsq-comment-header-9630766" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630766" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630766" href="http://www.youpload.com/" target="_blank" rel="nofollow">file hosting</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630766" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630766" class="dsq-comment-message">Hello,<br><br>Interesting post.<br>I usually use <a href="http://www.youpload.com" rel="nofollow">www.youpload.com</a> myself for file uploading, it has a nice web 2.0 interface and  is pretty fast.<br><br>Breg,<br>Marcus</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630767">\
	 <div id="dsq-comment-header-9630767" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630767" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630767" href="http://blog.cafenation.com.au/" target="_blank" rel="nofollow">Lee</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630767" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630767" class="dsq-comment-message">Definitely in favor of full feeds! Check out <a href="http://www.fullfeeds.com/" rel="nofollow">http://www.fullfeeds.com/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630768">\
	 <div id="dsq-comment-header-9630768" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630768" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630768" href="http://www.HubSpot.com" target="_blank" rel="nofollow">Dharmesh Shah</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630768" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630768" class="dsq-comment-message">Thought folks might this article interesting on how <a href="http://FastCompany.com" rel="nofollow">FastCompany.com</a> totally doesn\'t get the whole online content thing:<br><br><a href="http://www.smallbusiness20.com/Blog/tabid/6307/articleType/ArticleView/articleId/1257/Default.aspx" rel="nofollow">Lessons From A Laggard:  <a href="http://FastCompany.com" rel="nofollow">FastCompany.com</a> Shows How Not To Do Online Content</a><br><br>Talk about not getting the whole online media thing...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630769">\
	 <div id="dsq-comment-header-9630769" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630769" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630769">Stephen</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630769" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630769" class="dsq-comment-message">We\'re in a niche that gets high eCPMs from AdSense. Most of our traffic is from incoming Google searches.<br><br>Because of our niche, our RSS feeds are hijacked by many, many splogs. With full-feed we found our site ranking below some of these splogs on Google, so they were getting the traffic, not us.<br><br>DMCA notifications take care of a lot of this, but I was getting tired of devoting a couple of hours every Friday to sending them out and checking on outstanding complaints. (I was also getting tired of showing up in the Chilling Effects database.)<br><br>The straw that broke the camels back was Level 3, a Colorado ISP that hosts one of the biggest splog networks. Level 3 appears to have a DMCA contact point, but they do not in fact respond to e-mailed or faxed DMCA notifications. Time to call the attorney and start burning legal fees? I just went back to partial feeds and saved myself a lot of headaches.<br><br>Our partial feeds use hand-crafted summaries, not the first umpteen lines, so readers can get the jist and decided quickly to click through or move on. In most aggregators it\'s a simple option-click to get to the full feed in your browser, and you can do this for 20 posts and at the end of your RSS session you have a nice window of tabs that takes no time at all to scan through.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630770">\
	 <div id="dsq-comment-header-9630770" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630770" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630770" href="http://www.rabbitbites.com/" target="_blank" rel="nofollow">Nicholas Quixote</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630770" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630770" class="dsq-comment-message">has anything changed? I\'m looking for  a list  of full content feeds. It seems all the ones I use...ws journal, sfgate: none are full.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630771">\
	 <div id="dsq-comment-header-9630771" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630771" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9630771" href="http://www.rabbitbites.com/" target="_blank" rel="nofollow">Nicholas Quixote</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630771" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630771" class="dsq-comment-message">Oh, does anyone have a list of full content feeds?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630772">\
	 <div id="dsq-comment-header-9630772" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630772" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630772">John MacMillan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630772" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630772" class="dsq-comment-message">I\'m a reader not a blogger, and I fall in the camp that much prefers partial feeds because skimming is easier for me with them. If I want to read more, one click is not hard. I generally unsubscribe to full feeds if they regularly have long articles, except the few I really, really like.<br><br>I recognize this is a personal preference, related to the style of reading and reader I use, and almost certainly not universal.<br><br>Robert, your response to Vinnie is not following your own advice: telling someone to change their tools and they way they want to read feeds does not "treat the connector with the most possible respect and give him/her the easiest way to consume your content and link to it."<br><br>Some folks are telling you what the easiest way for us to consume your content is, and you\'re telling us we\'re wrong. I\'ve tried other readers, I like the one I use, thank you.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9630773">\
	 <div id="dsq-comment-header-9630773" class="dsq-comment-header">\
	 <cite id="dsq-cite-9630773" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9630773">Kate_L</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9630773" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9630773" class="dsq-comment-message">I apply with hope on your tender hearts!<br>A little girl needs your help, she has a cancer.She is just almost 1 year old, now she has treatment in an oncologic institute every month.<br>It is necessary to do an expensive operation quickly!<br>Her mother is in difficult financial position, she educates her daughter by herself, as girl\'s dad left them, when he found out about the daughter\'s disease. They will appreciate any your financial help!<br><br>WMZ for helping: Z109187995692</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-11700015">\
	 <div id="dsq-comment-header-11700015" class="dsq-comment-header">\
	 <cite id="dsq-cite-11700015" class="dsq-comment-cite">\
	 <a id="dsq-author-user-11700015" href="http://fivefilters.org/pdf-newspaper/" target="_blank" rel="nofollow">keyvan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-11700015" class="dsq-comment-body">\
	 <div id="dsq-comment-message-11700015" class="dsq-comment-message">There are a few services out there that can convert partial-text feeds into full-text feeds. If anyone\'s interested, I\'ve been working on one here: <a href="http://fivefilters.org/content-only/" rel="nofollow">http://fivefilters.org/content-only/</a><br><br>It\'s a free software project so the source code is available and you can host it yourself.</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=blog_herald_doesn8217t_understand_why_full_text_feeds_work&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);
			}
		}
	});
}

})();




