<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mr Blog &#187; twitter</title>
	<atom:link href="http://mrblog.org/category/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://mrblog.org</link>
	<description>Mr Blog.  Very technical, or silly, sometimes absurd.</description>
	<lastBuildDate>Wed, 16 May 2012 21:16:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>How to Improve PageRank Using 140Plus.com</title>
		<link>http://mrblog.org/2012/01/19/how-to-improve-pagerank-using-140plus-com/</link>
		<comments>http://mrblog.org/2012/01/19/how-to-improve-pagerank-using-140plus-com/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 19:33:38 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[social media marketing]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1493</guid>
		<description><![CDATA[There are many great reasons for businesses to use 140Plus.com but one clearly stands out: increasing your keyword rankings and growing your organic search traffic.  140Plus.com makes it easy to increase the number of terms that your website can rank for without cluttering your site with extra pages that might make your site bloated and hard to navigate. Below is a step-by-step guide for using 140plus.com as a highly effective and easy to use tool for SEO and traffic building. 1) What do I write about? The most common road block to getting started with 140Plus.com is deciding what to write about. The answer is simple: write about your keywords. Since you&#8217;ll be using 140Plus.com to write about your industry and niche, it will be a natural place to create content around a wide variety of keywords. 2) Identify keywords (be realistic) As an example, let&#8217;s say you want to increase the amount of traffic coming to your site for searches related to the term &#8220;pagerank.&#8221; Let&#8217;s face it, unless you&#8217;re Google or Wikipedia, you&#8217;re not going to be taking the #1 search engine result for the term &#8220;pagerank&#8221; anytime soon. That&#8217;s okay, you can still get crafty and take a [...]]]></description>
			<content:encoded><![CDATA[<p>There are many great reasons for businesses to use 140Plus.com but one clearly stands out:<strong> increasing your keyword rankings and growing your organic search traffic. </strong></p>
<p>140Plus.com makes it easy to increase the number of terms that your website can rank for without cluttering your site with extra pages that might make your site bloated and hard to navigate.</p>
<p>Below is a step-by-step guide for using <a href="http://140plus.com">140plus.com</a> as a highly effective and easy to use tool for SEO and traffic building.</p>
<p><strong>1) What do I write about?</strong></p>
<p>The most common road block to getting started with 140Plus.com is deciding what to write about. The answer is simple: write about your keywords. Since you&#8217;ll be using 140Plus.com to write about your industry and niche, it will be a natural place to create content around a wide variety of keywords.</p>
<p><strong>2) Identify keywords (be realistic)</strong></p>
<p>As an example, let&#8217;s say you want to increase the amount of traffic coming to your site for searches related to the term &#8220;<span>pagerank</span>.&#8221; Let&#8217;s face it, unless you&#8217;re Google or Wikipedia, you&#8217;re not going to be taking the #1 search engine result for the term &#8220;<span>pagerank</span>&#8221; anytime soon. That&#8217;s okay, you can still get crafty and take a sizable chuck of traffic by thinking about the way people search.</p>
<p>Most experienced Google users understand that using general terms isn&#8217;t going to get the results they want. Instead, people typically search for keyword phrases, for example: &#8220;increase <span>pagerank</span>,&#8221;, &#8220;improve <span>pagerank</span>&#8221; or &#8220;how to improve <span>pagerank</span>.&#8221;</p>
<p>I might never get the #1 spot for the term &#8220;<span>pagerank</span>&#8221; alone, but there is actually a chance that I could rank for the keyword phrase &#8220;how to improve <span>pagerank</span>.&#8221; Granted, it may not have a high search volume, but if you can rank for a dozen or more of these kinds of keyword phrases related to the term &#8220;<span>pagerank</span>&#8221; you&#8217;ll end up with a significant amount of traffic.</p>
<p><strong>3) Optimize your post around your keyword (Page Title, URL, H1)</strong></p>
<p>The most important places to included keywords on any page of your site is in the page title, the URL and the H1 tag. This means that if you&#8217;re trying to rank for &#8220;how to improve pagerank&#8221; you need to make sure that phrase, in that order, is in all three places.</p>
<p>You also need to make sure that this phrase appears first. A common mistake is for a company to put it&#8217;s name before it&#8217;s keywords in page titles. For example &#8220;140Plus &#8211; How to Improve Pagerank.&#8221; Instead you would want &#8220;How to Improve Pagerank &#8211; 140Plus.&#8221;</p>
<p>Fortunately, 140plus.com handles this for you automatically. Once you&#8217;ve identified your keywords and ensured they&#8217;re part of the title of your post, 140plus.com ensures that the page title, the URL and the H1 tag are automatically optimized for search engines for you.</p>
<p><strong>4) Publish your post</strong></p>
<p>Finally, publish your post. 140Plus automatically arranges your page into a clean, search-engine friendly format, while automatically publishing to the web, to Twitter, and to Google. Depending on how frequently Google and other search engines scan your 140plus.com site, it could take a few days or longer for your pages to be indexed and show up in Google. A simple tip to get your 140plus.com pages into search engines faster is to publish more often. When Google notices that a site is getting updated daily, it will scan the site more regularly.</p>
<p>This is another place where 140Plus.com does some for the work for you, <a href="http://140plus.com/about/pages">automatically posting to Twitter</a> and <a href="http://140plus.com/about/blogs">posting your RSS feed to Google</a>, leveraging the real-time social web to help your 140Plus.com posts get indexed faster.</p>
<p>140Plus.com gives your site more inbound links, which <strong>increases pagerank</strong> and improves organic search results to greatly increase traffic to your site. 140Plus makes it astonishingly easy to publish content to the new real-time social web. No set-up or configuration required. Just publish your content and share the link in seconds.</p>
<p>The world&#8217;s simplest <a href="http://140plus.com/about/pages">Twitter-integrated, SEO-optimized pages</a>.</p>
<p><strong>5) Check the results</strong></p>
<p>Try an experiment: If it&#8217;s been more than a few hours since your post has gone live, open up a new browser tab and do a quick Google search for &#8220;how to improve pagerank using 140plus.com.&#8221; Does your post show up on the front page? If so, do another search for &#8220;how to improve pagerank.&#8221; Does it show up again?</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2012/01/19/how-to-improve-pagerank-using-140plus-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook has just done Google a huge favor</title>
		<link>http://mrblog.org/2011/09/18/facebook-has-just-done-google-a-huge-favor/</link>
		<comments>http://mrblog.org/2011/09/18/facebook-has-just-done-google-a-huge-favor/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 19:26:30 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[social networks]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1449</guid>
		<description><![CDATA[Facebook is rolling out two new features that appear to be a direct reaction to Google+ (and to a lesser degree Twitter). Of course we have no way of knowing how long Facebook has been planning these features, but the timing and similarity to Google+ features certainly makes it appear to be a copycat response to the new Google+ threat. Facebook rolls these features out over time (and without warning), so they may not be on your account yet, but they will be. The two features are interlinked, in what appears to be an attempt to make Facebook &#8220;friend lists&#8221; be more like Google+ &#8220;circles&#8221;. New Sharing Options This change started to roll out a few weeks ago and now appears to be  site wide, applying to all accounts.  The status box used to update your status got a few new controls and widgets. First, on the left are two new options. The &#8220;who are you with&#8221; button lets you tag people in your status update. The second widget adds location to the status. Ok, fine. But the biggest change is the drop down on the right, next to the &#8220;Post&#8221; button. This lets you set who the status update [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook is rolling out two new features that appear to be a direct reaction to Google+ (and to a lesser degree Twitter). Of course we have no way of knowing how long Facebook has been planning these features, but the timing and similarity to Google+ features certainly makes it appear to be a copycat response to the new Google+ threat. Facebook rolls these features out over time (and without warning), so they may not be on your account yet, but they will be.</p>
<p>The two features are interlinked, in what appears to be an attempt to make Facebook &#8220;friend lists&#8221; be more like Google+ &#8220;circles&#8221;.</p>
<h3>New Sharing Options</h3>
<p>This change started to roll out a few weeks ago and now appears to be  site wide, applying to all accounts.  The status box used to update your status got a few new controls and widgets.</p>
<div id="attachment_1450" class="wp-caption aligncenter" style="width: 522px"><img class="size-full wp-image-1450" title="newfbshare" src="http://mrblog.org/wp-content/uploads/2011/09/newfbshare.png" alt="" width="512" height="297" /><p class="wp-caption-text">New facebook status box</p></div>
<p>First, on the left are two new options. The &#8220;who are you with&#8221; button lets you tag people in your status update. The second widget adds location to the status. Ok, fine.</p>
<p>But the biggest change is the drop down on the right, next to the &#8220;Post&#8221; button. This lets you set who the status update goes to (sort of). The normal option (the way Facebook has always worked) would be the &#8220;Friends&#8221; choice, meaning the status update is seen by your friends only. If you specify &#8220;Public&#8221; your status is visible to anyone, basically making Facebook more like Twitter, where if you want to, you can publish your status updates for anyone to see. Bringing us to another new feature (described further below) where people that are <strong>not</strong> your friends, can &#8220;subscribe&#8221; to your public updates, again, more or less the way Twitter works. I think by default, Facebook has made the new default &#8220;Public,&#8221; so if you don&#8217;t change that, your status updates will be visible to everyone.</p>
<p>In addition to the &#8220;Public&#8221; and &#8220;Friends&#8221; options, you can now specify that an update should only be sent to friends on a specific list, one of your old &#8220;friend lists&#8221; (if you ever used that feature) or one of the new &#8220;automatic&#8221; lists that Facebook calls &#8220;Smart Lists,&#8221; which are managed by Facebook automatically for you based on profile information &#8211; another case of Facebook telling us &#8220;trust us, we know what you want.&#8221; Time will tell whether people find these automatic lists useful and trustworthy.</p>
<p>Finally, there is another special list called &#8220;Restricted&#8221; which is for friends that aren&#8217;t really friends <img src='http://mrblog.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  This is where you put friends when you don&#8217;t want them to see your status updates. Friends on this special &#8220;Restricted&#8221; list will only see your &#8220;Public&#8221; updates (but I assume they still have access to your photos etc.)</p>
<h3>Managing Friend Lists</h3>
<p>The other significant change is in managing friends and friend lists. There are new options when you visit someone&#8217;s profile:</p>
<p><img class="aligncenter size-full wp-image-1452" title="newfblists" src="http://mrblog.org/wp-content/uploads/2011/09/newfblists.png" alt="" width="324" height="285" /></p>
<p>The new &#8220;Friends&#8221; widget shown above makes it easier to manage the lists a given friend is on. Every time you visit their profile, you can check or change what lists they are on. For anyone that suffered through the old cumbersome way of managing lists this is much easier than before, but there is still plenty of room for improvement.</p>
<p>There&#8217;s also the new &#8220;Subscribed&#8221; button, which allows you to subscribe to a person&#8217;s &#8220;Public&#8221; updates, so that any status updates they mark as &#8220;Public&#8221; will show up on your page, even if they are not your friend. This is clearly a case where Facebook wants to be like Twitter.</p>
<h3>Why This A Potential FAIL</h3>
<p>These new changes are mostly being heralded around the net and in the media as a brilliant move by Facebook. Technically, for being obviously bolted-on, I have to admit they are not that terrible, in terms of the implementation. But here&#8217;s where I wonder if Facebook might be shooting themselves in the foot here, and actually helping Google+ (especially) and Twitter (to a lesser degree) which is probably <strong>not</strong> their intent.</p>
<p>Twitter is essentially still a mainstream failure, with only <a title="Twitterverse reality check" href="http://mrblog.org/2011/02/02/twitterverse-reality-check-and-lessons-learned/" target="_blank">8% of online Americans using it</a>. It&#8217;s clear that one big reason is Twitter&#8217;s complexity and the inability of Twitter to explain what it does and how to use it to mainstream users. It&#8217;s too early to tell whether Google+ will reach deep into the mainstream the way Facebook has. One of the points I raised about Google+ is the complexity and that it is too confusing to mainstream users:</p>
<blockquote><p>Google+ is too complicated and too geek-oriented. When people share something with Google+, they are going to constantly find themselves asking “who is that going to?”  Twitter suffers from being too confusing to people too. But if Twitter is too complicated, Google+ is going to be like a third-semester Calculus class for many people. Only a tiny fraction of Twitter users ever figure out how to effectively manage notifications or “who sees what” on Twitter. Google+ hasn’t made it any easier. If people are overwhelmed and confused with the Twitter options, their brains are going to explode with Google+.</p></blockquote>
<p>With Facebook now essentially copying the Google+ &#8220;circles&#8221; model, they have now introduced the same kind of complexity into Facebook that hinders their competitors, effectively removing a major differentiator of Facebook: being easy to understand for mainstream users.</p>
<p><strong>Facebook has just done Google a huge favor.</strong></p>
<p>In essence, by force feeding this change to  its 750 million users, Facebook will be doing something Google themselves may have spent years doing: teaching them how Google+ works. Facebook users have no choice but to accept these new features, and struggle to learn them, which will make all Facebook users more comfortable with the &#8220;circles&#8221; model, and that level of complexity, ultimately making it that much less painful to switch to Google+.</p>
<p>Before this, if a Facebook user went to Google+, they had to figure out how &#8220;circles&#8221; and selective sharing work using Google+ itself.  Google+ would be their first exposure to this mode of operating. They would have no mental model for it and no prior experience with the ideas of it. Now, a Facebook user will have a direct analog from their Facebook experience &#8211; as soon as they hit Google+ they will already have an idea how &#8221;circles&#8221; and selective sharing work, removing a huge switching barrier.</p>
<p>Likewise, with the new &#8220;Public&#8221; and &#8220;Subscribe&#8221; features, Facebook is teaching those 750 million users how Twitter works too, something Twitter themselves has been largely unable to do. However, I think in this case, Twitter is the loser and Facebook the winner (more on that in a separate post).</p>
<p>But Google+, on the other hand, just got handed an enormously valuable gift by Facebook.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2011/09/18/facebook-has-just-done-google-a-huge-favor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google+ The Good, the Bad, and the Ugly</title>
		<link>http://mrblog.org/2011/07/15/google-the-good-the-bad-and-the-ugly/</link>
		<comments>http://mrblog.org/2011/07/15/google-the-good-the-bad-and-the-ugly/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 20:49:39 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[social networks]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1414</guid>
		<description><![CDATA[I&#8217;ve been told that nothing we know about Google+ can be criticized because it is pre-beta. Okay then. Well, here&#8217;s some quick takes after trying it out a bit. 1. The Good This section is the hardest to fill in for me. We already have Facebook, Twitter, and LinkedIn (and others). It makes it hard to identify an obvious place for Google+. There&#8217;s the much acclaimed (and sometimes befuddling) &#8220;Circles&#8221; (to scope the distribution of updates). There&#8217;s also &#8220;Sparks&#8221; (search) &#8220;Huddles&#8221; (group chat), and &#8220;Hangouts&#8221;. Of these, &#8220;Hangouts&#8221; is perhaps the most unique. It is a way to announce your interest in video-chatting. That&#8217;s very much like something we did with Phweet back in 2008, so perhaps that&#8217;s why I like it. One other good thing? It&#8217;s not Zuckerberg. Google&#8217;s famous &#8220;do no evil&#8221; comment has to be something they regret saying by now, but even so, I still feel that Google is a lesser evil, especially when it comes to handling my personal data. Facebook has a simply atrocious record in this regard. The less they have of my data, the better. David Pogue gives a number of reasons to like Google+ in Google+ Improves on Facebook at the New York Times. I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been told that nothing we know about Google+ can be criticized because it is pre-beta.</p>
<p>Okay then. Well, here&#8217;s some quick takes after trying it out a bit.</p>
<h2>1. The Good</h2>
<p>This section is the hardest to fill in for me. We already have Facebook, Twitter, and LinkedIn (and others). It makes it hard to identify an obvious place for Google+. There&#8217;s the much acclaimed (and sometimes befuddling) &#8220;Circles&#8221; (to scope the distribution of updates). There&#8217;s also &#8220;Sparks&#8221; (search) &#8220;Huddles&#8221; (group chat), and &#8220;Hangouts&#8221;. Of these, &#8220;Hangouts&#8221; is perhaps the most unique. It is a way to announce your interest in video-chatting. That&#8217;s very much like something we did with Phweet back in 2008, so perhaps that&#8217;s why I like it. <img src='http://mrblog.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>One other good thing? It&#8217;s not Zuckerberg. Google&#8217;s famous &#8220;do no evil&#8221; comment has to be something they regret saying by now, but even so, I still feel that Google is a lesser evil, especially when it comes to handling my personal data. Facebook has a simply atrocious record in this regard. The less they have of my data, the better.</p>
<p>David Pogue gives a number of reasons to like Google+ in <a href="http://www.nytimes.com/2011/07/14/technology/personaltech/google-gets-a-leg-up-on-facebook.html?_r=1" target="_blank">Google+ Improves on Facebook</a> at the <em>New York Times</em>. I don&#8217;t disagree with his points, so I recommend you check out the article. He concludes with:</p>
<blockquote><p>Until now, Facebook and Twitter have been the Dominant Duo of social networking. But Google’s less sprawling, more video-centric, better-controlled new service is already too good to ignore. Now it’s the Dominant Duo &#8230;+1.</p></blockquote>
<h2>2. The Bad</h2>
<p>Google+ is too complicated and too geek-oriented. When people share something with Google+, they are going to constantly find themselves asking &#8220;who is that going to?&#8221;  Twitter suffers from being too confusing to people too. But if Twitter is too complicated, Google+ is going to be like a third-semester Calculus class for many people. Only a tiny fraction of Twitter users ever figure out how to effectively manage notifications or &#8220;who sees what&#8221; on Twitter. Google+ hasn&#8217;t made it any easier. If people are overwhelmed and confused with the Twitter options, their brains are going to explode with Google+.</p>
<p>All the cool features discussed above under &#8220;The Good&#8221; could be put under &#8220;The Bad&#8221; when it comes to complexity and learning curve. Features are a double-edged sword. Confusion about how it works keeps a lot of people off Twitter, or at leasts keeps them from using it to share and Google+ appears that it is going to suffer from being confusing too.</p>
<h2>3. The Ugly</h2>
<p>Google will tell you that the coolest part of Google+ is that it is (or will be) integrated with all other Google services and features. I argue that this is the biggest thing that hinders the chances for Google+ to succeed and not just become another Wave or Buzz that people try for a while and then dump.</p>
<p>This is the &#8220;Google Account&#8221; problem. It&#8217;s the assumption by Google that you have one Gmail account that you use for everything. After jumping through some non trivial hoops, Google now allows you to sign in to &#8220;multiple&#8221; accounts (up to three, if they&#8217;re the right kind of accounts) at once, but one of them is the &#8220;primary&#8221; account and trying to use one of the others is like dancing a tightrope carrying an anvil in one hand and a sharp knife in the other. You&#8217;re probably going to get bloody&#8230; or hurt someone. You log out of one, and everything you use on Google gets signed out too, even if it wasn&#8217;t using that account. This is why people end up running a different browser for every Google account and for every Google product. I could go on and on about this nightmare.</p>
<p>At the moment, you can&#8217;t use Google+ with anything but the &#8220;primary&#8221; Google logged in account.</p>
<p>This is all fine for people that have <strong>exactly one</strong> Gmail account and it&#8217;s all they use. However, with more and more companies converting to Google Apps and more and more people working from home etc. many people are using more than one Google Account at the same time and using different Google Accounts with different Google services. For example. I&#8217;m using Gmail with one (or more) accounts, using AdSense with a different account, using Google Docs with another account, Analytics with yet another account etc.</p>
<p>When it comes to Google+ this problem affects you even if you don&#8217;t use multiple Gmail accounts and multiple Google services. Requiring and binding by browser session to a &#8220;primary&#8221; Gmail account means Google+ is limited to people that use Google and Gmail in that way. This means Google has pre-selected which friends you can and cannot find on Google+. If I look at the groups of people I interact with, I have never segmented them into &#8220;those that use Gmail and those that don&#8217;t.&#8221; That segmentation is not meaningful to me. Google might care, but I sure don&#8217;t &#8211; it doesn&#8217;t help me organize my contacts.  As <a href="http://twitter.com/sreejithk2000">@sreejitkk2000</a> puts it:</p>
<p><img class="aligncenter size-full wp-image-1416" title="Google+ Account Problem" src="http://mrblog.org/wp-content/uploads/2011/07/sreeej.png" alt="Google+ Account Problem" width="480" height="234" /></p>
<p>One needs to get a Google Account to use Google+ and they have to <strong>like it</strong>, in that they have to log in with that account and use it for every Google service they will ever use. Quick: What percentage of your friends have a Google Account?  Which ones don&#8217;t? Is that a breakdown that is meaningful to you? Is that a group categorization you would normally use to divide up your friends? I don&#8217;t think so. And yet, that&#8217;s what Google has done for us.</p>
<p>For those of your friends without a Google account, do they know how to get one? Would they want one? Is Google+ so great that you would walk all your friends through setting up a Google Account and Google Profile?  And what about those friends that you&#8217;d like to have in a &#8220;circle&#8221;, but that simply can&#8217;t (or won&#8217;t) use Google the way Google wants?</p>
<p>I think this is a fundamental mis-judgement by Google. They see the tie-in to a Gmail account and other Google services as a good thing but I see it as a massive albatross.</p>
<p><span class="Apple-style-span" style="font-size: 20px; font-weight: bold;">Summary</span></p>
<p>Google+ is kind of a hybrid of Twitter and Facebook. It takes some features from Facebook, like rich content, updates longer than 140 characters, and comment threads.  And it takes some from Twitter, most notably asymetrical connections as in &#8220;Circles&#8221;. Then it brings in a few unique features like &#8220;Hangouts&#8221;.</p>
<p>It&#8217;s too early to tell what will become of Google+. For me, it&#8217;s a wait and see. I&#8217;m using it, but it has not grabbed me yet, mostly because nobody is there yet. The above &#8220;Google Account&#8221; problem already means I&#8217;m using an identity on Google+ that is not the identity that I want to use with it (because the identity I want to use is not compatible with it). And I see the self-selection discussed above coming into play and selecting for me the domain of people that I can connect with on Google+ (and more importantly, who I cannot connect with). This severely limits how I can use Google+ &#8211; until everyone I want to connect with converts to using Gmail as their primary login with a Google+ compatible &#8220;Google Account&#8221; and &#8220;Google Profile&#8221; it can&#8217;t replace Facebook, LinkedIn or Twitter for me. Instead, it&#8217;s simply one MORE place I have to check. I think this was a key factor in limiting and killing Buzz and Wave and it could easily also be the thing that kills Google+.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2011/07/15/google-the-good-the-bad-and-the-ugly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitterverse reality check and lessons learned</title>
		<link>http://mrblog.org/2011/02/02/twitterverse-reality-check-and-lessons-learned/</link>
		<comments>http://mrblog.org/2011/02/02/twitterverse-reality-check-and-lessons-learned/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 00:17:21 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[business models]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1328</guid>
		<description><![CDATA[You&#8217;ll probably never know it by looking at the final result, but I&#8217;ve been working on this post, at least thinking about it, for several months.  I&#8217;ve been reluctant to publish it because every time I start, it tends to sound like a rant and that&#8217;s not what I want this to be about. As anybody reading me knows, I&#8217;m not afraid to rant, but in this case that&#8217;s not my objective &#8211; I really just want to share some lessons learned in the hope of informing the dialog. Some of this may be obvious &#8220;well duh&#8221; sort of stuff for others out there who may be a lot smarter than me. Hopefully it won&#8217;t all be that way. As many of you may already know, over the last several years, I&#8217;ve worked on and otherwise participated in a number of side-projects, including: Phweet &#8211; a phone call in a URL Taglets &#8211; the story of tagged things Twitmart &#8211; Twitter Marketplace for social classifieds SuperTweet.net API &#8211; An Answer for Twitter OAuth-pacalypse TweetPress (140plus.com) &#8211; a free Twitter blog at http://YOU.140plus.com Each of these can be considered a failure, depending on the metric or dimension one examines. Except for SuperTweet.net and [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ll probably never know it by looking at the final result, but I&#8217;ve been working on this post, at least thinking about it, for several months.  I&#8217;ve been reluctant to publish it because every time I start, it tends to sound like a rant and that&#8217;s not what I want this to be about. As anybody reading me knows, I&#8217;m not afraid to rant, but in this case that&#8217;s not my objective &#8211; I really just want to share some lessons learned in the hope of informing the dialog.</p>
<p>Some of this may be obvious &#8220;well duh&#8221; sort of stuff for others out there who may be a lot smarter than me. Hopefully it won&#8217;t all be that way.</p>
<p>As many of you may already know, over the last several years, I&#8217;ve worked on and otherwise participated in a number of side-projects, including:</p>
<ul>
<li><a title="a phone call in a URL " href="http://mrblog.org/2008/07/31/phweet-a-phone-call-in-a-url-goes-public-alpha/">Phweet</a> &#8211; a phone call in a URL</li>
<li><a title="taglets.org - the story of tagged things" href="http://mrblog.org/2009/01/14/introducing-tagletsorg/">Taglets</a> &#8211; the story of tagged things</li>
<li><a title="Twitter Marketplace for social classifieds" href="http://twitmart.org/about/factsheet">Twitmart</a> &#8211; Twitter Marketplace for social classifieds</li>
<li><a title="An Answer for Twitter OAuth-pacalypse" href="http://mrblog.org/2010/05/20/an-answer-for-twitter-oauth-pacalypse/">SuperTweet.net API</a> &#8211; An Answer for Twitter OAuth-pacalypse</li>
<li><a title="using your Twitter account, a free blog at http://YOU.140plus.com " href="http://mrblog.org/2010/11/22/introducing-tweet-press-at-140plus-com/">TweetPress</a> (<a title="Post an idea or ask a question of your Twitter followers, including details beyond 140 characters, and easily gather all their answers in one spot." href="http://140plus.com">140plus.com</a>) &#8211; a free Twitter blog at http://YOU.140plus.com</li>
</ul>
<p>Each of these can be considered a failure, depending on the metric or dimension one examines. Except for <a href="http://SuperTweet.net">SuperTweet.net</a> and <a href="http://140plus.com">TweetPress</a>, all of them have since been shut down. Each of them have been a disappointment, to some degree or another, for me, personally. However, they also each provided various positive rewards, in addition to the sometimes painful lessons learned.</p>
<h2>Metric 1: Popularity</h2>
<p>Certainly, with the exception of <strong>SuperTweet.net</strong>, they are all failures in terms of popularity &#8211; they never gained any significant traction.</p>
<p>With the exception of <strong>Taglets.org</strong>, each of these services require a Twitter account &#8211; the only way to use the service is using your Twitter account. This was an intentional decision, where these services were supposed to be integrated with and tightly coupled to Twitter and your Twitter <em>social graph</em>. I don&#8217;t recommend such a strategy for anything real you may be doing. It&#8217;s fine for side projects like these, but it&#8217;s a bad decision for something you might hope to make into a business and you only need one reason for that, according to Pew Internet:</p>
<blockquote><p><span style="font-size: 240%; line-height: 100%;">8% of online Americans use Twitter</span></p></blockquote>
<p>So by limiting your target market to only those using Twitter, you are automatically <strong>excluding 92% of potential users</strong>. And that&#8217;s the number as of December, 2010 (according to <a title="8% of online Americans use Twitter" href="http://www.pewinternet.org/Reports/2010/Twitter-Update-2010.aspx" target="_blank">Pew</a>) at a time when Twitter was claiming over 150 million users.  It was even worse, much worse, back <a title="TechCrunch story" href="http://techcrunch.com/2008/07/30/call-your-twitter-pals-with-phweet/" target="_blank">when we released Phweet in 2008</a> when Twitter had only a few million users.</p>
<p>There are other reasons to avoid putting too much emphasis on Twitter as a <em>social network</em> (which <a title="ReadWriteWeb - Twitter is NOT a Social Network, Says Twitter Exec" href="http://www.readwriteweb.com/archives/twitter_is_not_a_social_network_says_twitter_exec.php" target="_blank">even Twitter says it is not</a>), some of which I cover below, but obviously the 8% problem is all you really need to know.</p>
<p>Opening up your site to Facebook users will expose you to about ten times more users. That makes good business sense &#8211; however, in my case, I don&#8217;t particularly want to help Facebook <a title="Reuters - Facebook may &quot;lock in&quot; its Internet dominance" href="http://www.reuters.com/article/2010/01/27/us-facebook-idUSTRE60Q0K520100127?type=technologyNews" target="_blank">lock-in</a> more users and more sites, so I have elected to not implement Facebook Connect &#8211; a bad business decision, but one I accept on principle (and admittedly more weakly, on long-term business strategy grounds). I don&#8217;t encourage anyone to follow my lead on that, unless you also are doing so for something other than sound business reasons.</p>
<p>It&#8217;s too early to call regarding <strong>TweetPress</strong> one way or the other, but given that it is Twitter account-based, it suffers from the above problem of excluding the lion&#8217;s share of potential users that don&#8217;t have Twitter accounts, right off the bat. The service has not received any TechCrunch, GigaOm, or other such &#8220;juice&#8221; as <strong>Phweet</strong> and <strong>Twitmart</strong> did, and is only being promoted through the limited reach of my own followers and a few friends and others that have started using the service. As a result, growth has been slow, if not almost non-existant. Either way,  it serves my needs and it continues to be a wonderful platform for experimenting with different technologies, mashups, APIs etc. I have no plans to shut <strong>TweetPress</strong> down, regardless of whether it ever achieves wide adoption, but it&#8217;s always more fun when such services are embraced by a larger community.</p>
<p><strong>Twitmart</strong> was being used by a few users, but it never even started toward the goal of helping users build a trading community with their Twitter Friends and Followers. Nobody used it that way. Instead, it became little more than a vehicle for spammers, so we shut it down.</p>
<p>As noted above, <strong>SuperTweet.net</strong> isn&#8217;t a disappointment in terms of adoption. It has been steadily growing <a href="http://supertweetnews.140plus.com/p/httpsupertweetnet-api-usage-post-disabling-of-basic-auth-on-the-twitter-api-/7d3TI">since Twitter shut off Basic Authentication on the API</a>. Unfortunately, most the users are parasites, contributing nothing in return (with notable exceptions, @<a title="Mark Petrovic, Ph.D" href="http://www.supertweet.net/about/acknowledgements">ae6rt</a> @<a title="Dave Nightingale" href="http://supertweetnews.140plus.com/p/stand-alone-supertweet-proxy-version-for-windows-now-available-too-updated/iyWnM">TheDarkNighty</a> and a handful of <a title="please help support the project with a donation" href="http://www.supertweet.net/donate">donations</a>) &#8211; certainly it has not produced the kind of community of support I had hoped it would (naive, wishful-thinking on my part). <strong>Update:</strong> I have to take this statement back &#8211; there has been a significant upswing in community support for SuperTweet.net &#8211; thanks folks.</p>
<h2>About the 8%</h2>
<p>This brings me to some of the lessons learned about the 8% of people using Twitter. Let&#8217;s look at the Twitterverse in more detail.</p>
<p>With each of these services, we have learned something about the evolving Twitter user-base. And as Twitter approaches double-digit penetration into the mainstream, it may also provide some lessons about the Internet population at large.  We have seen this pattern before. The early adopters skew the personality of a service in the beginning. We saw it with Usenet, way back in the late eighties, and the pattern has repeated across many services over the years, right on up to <em>Quora</em> today.</p>
<p>In the beginning the services are populated with users that are smart, helpful, active etc. &#8211; there is a real community and it&#8217;s a regular utopian bliss. But then the real world steps in. And guess what, not everybody is so smart or sweet and nice. Some come from harder backgrounds where making a living might mean $1 a day. There are sleazeballs of every flavor with all kinds of motivations. If there is a way to exploit the service for their own personal gain, they find it, especially if it costs them almost nothing to do it (whether it&#8217;s the cost of a Usenet post, email, or a Twitter status update).</p>
<p>And Twitter is no different. As it&#8217;s gone from under a million users to hundreds of millions of users, the flotsam and jetsam of the population came along. As with email, the spammers and the like may be only a small fraction of the total user-base in number, but they can have a tremendous impact on the overall system. And there is a gigantic gray area of behaviors in the name of &#8220;social media marketing&#8221; and &#8220;SEO&#8221; going on on Twitter that sometimes cross the line. I read a business plan recently that literally referred to Social Media as the <strong><em>&#8220;advertising mecca of the future.&#8221;</em></strong> I suspect such is a common view among budding entrepreneurs.</p>
<p>One doesn&#8217;t have to look very far to find a huge array of consulting firms, PR agencies and others that will make all kinds of claims about their &#8220;secrets&#8221; and expertise in Social Media Marketing, often charging exorbitant fees &#8211; I shouldn&#8217;t even have to say it, but very few of them provide any value and most the time, engaging such a service will end up doing more harm than good by damaging your firm&#8217;s reputation.</p>
<p>Anyway, while I doubt the percentage of Twitter users that fit the above <em>abuser</em> category is very large, their presence is felt loud and clear. And they are the first to try to &#8220;game&#8221; any new system or service connected with Twitter, as well as Twitter itself of course. These are the folks that jumped on <strong>Twitmart</strong> and, I have to say, soured me on the project, and on Twitter as an ecosystem to a degree.</p>
<h3>The Twitter &#8220;social graph&#8221; is a joke</h3>
<p>In the bright young days of Twitter, a lot of us thought it might be a new kind of social network. And it was, for a while (and still is for a small percentage of Twitter users). But once Twitter started to aggressively market the service, attract celebrities, and celebrity stalkers, any chance of a meaningful <em>social graph</em> were put to bed. As Pew and other research has shown, there is nothing mutual in those relationships and no <em>community</em> or friendship aspect to them. Even Twitter finally acknowledged last year that they are a media company, not a social network.</p>
<p>Further, the Twitter Home Timeline, the stream of who you follow, has also become part of the joke. Most people that have a &#8216;reputation&#8217; of any kind also follow a lot of people out of a sense of duty &#8211; they feel obligated to follow people so not to send a message that &#8220;we aren&#8217;t really friends,&#8221; even though they don&#8217;t really care much about that person&#8217;s tweets.  Their &#8220;following&#8221; list is so polluted with such connections, they really never <em>follow</em> it at all.  I had a high-profile Twitter guru tell me recently, in essence, that I&#8217;m not a serious or typical Twitter power-user because I don&#8217;t follow 500+ people. I brutally manage who I follow because I still actually read my timeline, basically every tweet in it. If I followed 500+ people, I may as well not be following any of them, because I&#8217;d never see most the tweets in that timeline/feed. But that&#8217;s exactly what a lot of people do on Twitter, making their home timeline, and thus their social graph, meaningless.</p>
<p>The implication is that any Twitter-related service that somehow relates to the social graph is working from bogus data and won&#8217;t be of any use to the largest segments of Twitter users, those for which the social graph is almost entirely meaningless.</p>
<h3>Twitter is less real-time than you think</h3>
<p>For news and events, the Twitter consciousness, the live timeline (fire hose), can provide wonderful insights as events happen. This is the <em>broadcast platform role</em> that Twitter serves very well.</p>
<p>In terms of real-time person-to-person <em>conversation</em>, however, Twitter is hit and miss, mostly miss. With <strong>Phweet</strong>, we discovered that most people don&#8217;t tune in to Twitter all that often or consistently. Here are some other issues that impair Twitter&#8217;s ability to serve as a communications platform:</p>
<ol>
<li>Many connections aren&#8217;t mutual, so direct messaging fails</li>
<li>Twitter settings are too complicated, such that most people never figure out how to set up real-time notifications</li>
<li>Messages get lost in overflowing timelines</li>
<li>The 140 character limit kills deep conversation, or causes them to move elsewhere</li>
</ol>
<p>Many services have emerged to try to solve the conversation problem on Twitter and they have all gone nowhere. In my opinion, Twitter as a person-to-person or small-group conversation platform is a non-starter.</p>
<h2>Summary</h2>
<p>In the end, Twitter is basically like a zillion RSS feeds overloaded with a messaging system (actually two messaging systems, @ messages that are semi-public, and direct messages that are email) wrapped around a search engine, and hooked in to SMS (at least in the US). Probably the original description of Twitter as a &#8220;microblogging service&#8221; is still the most accurate.</p>
<p>In short, people use Twitter to share stuff. Unlike a Facebook or LinkedIn style social network, tweets are generally shared with the world at large, not just ones mutual friendships. When, or if, people see what you share depends on a number of factors, not just whether they &#8220;follow&#8221; you or not. They might see your tweet as a search result, due to a retweet, as part of a Twitter list&#8217;s contents, or because the tweet was directed to them via @ messaging. And the fact that they follow you is no guarantee they will ever see your tweet, far from it.</p>
<p>All these things are important to keep in mind when conceiving applications or services that in some way work with Twitter.</p>
<p>So can you build a business, or even a viable service, around Twitter, exclusively? I don&#8217;t think so. Oneforty has done it (to whatever degree they are successful) and of course some Twitter clients have done alright (many have not done that well, especially once Twitter themselves became a competitor). Even though Twitter claims 200 million users, bear in mind that only 8% of online users use the service, and of those, only a tiny fraction make up the kind of users that can help build value in a community.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2011/02/02/twitterverse-reality-check-and-lessons-learned/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introducing 140plus.com</title>
		<link>http://mrblog.org/2010/11/22/introducing-tweet-press-at-140plus-com/</link>
		<comments>http://mrblog.org/2010/11/22/introducing-tweet-press-at-140plus-com/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 00:13:52 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[social media marketing]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[blogs]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1279</guid>
		<description><![CDATA[I&#8217;m in the process of shutting down one service (Twitmart.org) and at the same time firing up a new one at 140plus.com. I essentially put 140plus.com together for my own needs but made it general enough for anybody to use. I&#8217;ve been trying to decide what to do with the 140plus.com domain for a while and finally decided to go ahead and deploy this rather modest idea on that domain. Basically, I am always spinning several plates at the same time in the form of ideas and projects I&#8217;m working on. These often have a Twitter ID associated with them. 140plus.com lets me have a simple blog for each of these using just a Twitter ID without having to go through the setup of a full Blogger or WordPress blog. Blogger and WordPress invite one to customize a blog &#8211; the urge to do so is often overwhelming &#8211; soon you can find yourself spending an enormous amount of time on the look and theme and widgets and other options on your blog. 140plus.com is the anti-Wordpress in that regard. There are NO VERY FEW customization options with 140plus.com. With one click to sign in using your Twitter account (using Twitter OAuth), you have  your blog setup [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in the process of shutting down one service (<a href="http://twitmart.org">Twitmart.org</a>) and at the same time firing up a new one at <a href="http://140plus.com">140plus.com</a>.</p>
<p>I essentially put <a href="http://140plus.com">140plus.com</a> together for my own needs but made it general enough for anybody to use. I&#8217;ve been trying to decide what to do with the <a href="http://140plus.com">140plus.com</a> domain for a while and finally decided to go ahead and deploy this rather modest idea on that domain.</p>
<p>Basically, I am always spinning several plates at the same time in the form of ideas and projects I&#8217;m working on. These often have a Twitter ID associated with them. <a href="http://140plus.com">140plus.com</a> lets me have a simple blog for each of these using just a Twitter ID without having to go through the setup of a full Blogger or WordPress blog.</p>
<p>Blogger and WordPress invite one to customize a blog &#8211; the urge to do so is often overwhelming &#8211; soon you can find yourself spending an enormous amount of time on the look and theme and widgets and other options on your blog. <a href="http://140plus.com">140plus.com</a> is the anti-Wordpress in that regard. <strong>There are <span style="text-decoration: line-through;">NO</span> VERY FEW customization options with 140plus.com</strong>. With one click to sign in using your Twitter account (using Twitter OAuth), you have  your blog setup at <span style="text-decoration: underline;">http://YOU.140plus.com</span> and are ready to start writing posts.</p>
<div class="wp-caption alignnone" style="width: 310px"><a href="http://140plus.com"><img title="140plus.com Admin Dashboard" src="http://140plus.com/images/quickpost200.png" alt="140plus.com Admin Dashboard" width="200" height="163" /></a><p class="wp-caption-text">140plus.com Admin Dashboard</p></div>
<p><a href="http://140plus.com">140plus.com</a> blogs can choose from a few basic themes with pre-set layouts (the default and most common theme is derived from the <a href="http://binarybonsai.com/kubrick/">Kubrick</a> design by Michael Heilemann &#8211; at some point, this might change). You can set your blog title, define some keywords, and add a few links off your blog page, and that&#8217;s basically it. All of these settings are optional and automatically default to reasonable values if not set, so never need to be touched, if you don&#8217;t want to.</p>
<p>Another way to look at <a href="http://140plus.com">140plus.com</a> is as a &#8220;Twit Longer&#8221; type service, where you can post items that don&#8217;t fit in 140 characters to Twitter.  When you post a new entry on your <a href="http://140plus.com">140plus.com</a> blog, the title of the entry is sent to Twitter, with a link to the full post.</p>
<div id="attachment_1282" class="wp-caption aligncenter" style="width: 310px"><a href="http://itdirector.140plus.com/p/testing-out-option-free-tweetpress-microblogger/rdCja"><img class="size-medium wp-image-1282 " title="Sample 140plus.com Tweet" src="http://mrblog.org/wp-content/uploads/2010/11/tpsample-300x131.png" alt="Sample 140plus.com Tweet" width="300" height="131" /></a><p class="wp-caption-text">Sample 140plus.com Tweet</p></div>
<p>Check it out and let me know what you think: <a href="http://140plus.com">http://140plus.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2010/11/22/introducing-tweet-press-at-140plus-com/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Taglets.org to be shutdown October 22, 2010.</title>
		<link>http://mrblog.org/2010/10/12/taglets-org-to-be-shutdown-october-22-2010/</link>
		<comments>http://mrblog.org/2010/10/12/taglets-org-to-be-shutdown-october-22-2010/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 00:24:51 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[Administrivia]]></category>
		<category><![CDATA[taglets]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1255</guid>
		<description><![CDATA[I&#8217;m sad to see it go, but the time as come. We&#8217;ve enjoyed the experiment with Taglets.org this past year and a half, but it&#8217;s time to move on and shutdown the service. We haven&#8217;t driven the sort of usage we originally had hoped. Thanks for joining with us while we attempted to see if Taglets was useful at scale. We truly appreciate it. The service will stop functioning Friday, October 22, 2010. For those of you using the service by way of the WordPress Taglets Feeder plugin, you may wish to uninstall the plugin to avoid posting to the Taglets service. Respectfully, Mark Petrovic David Beckemeyer Founders, Taglets.org http://www.taglets.org]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sad to see it go, but the time as come.</p>
<blockquote><p>We&#8217;ve enjoyed the experiment with Taglets.org this past year and a half, but it&#8217;s time to move on and shutdown the service.  We haven&#8217;t driven the sort of usage we originally had hoped.  Thanks for joining with us while we attempted to see if Taglets was useful at scale.  We truly appreciate it.</p>
<p>The service will stop functioning Friday, October 22, 2010.  For those of you using the service by way of the WordPress Taglets Feeder plugin, you may wish to uninstall the plugin to avoid posting to the Taglets service.</p>
<p>Respectfully,</p>
<p>Mark Petrovic<br />
David Beckemeyer<br />
Founders, Taglets.org</p>
<p>http://www.taglets.org</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2010/10/12/taglets-org-to-be-shutdown-october-22-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Answer for Twitter OAuth-pacalypse</title>
		<link>http://mrblog.org/2010/05/20/an-answer-for-twitter-oauth-pacalypse/</link>
		<comments>http://mrblog.org/2010/05/20/an-answer-for-twitter-oauth-pacalypse/#comments</comments>
		<pubDate>Thu, 20 May 2010 21:42:29 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[protocols]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[mashups]]></category>
		<category><![CDATA[oauth]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1170</guid>
		<description><![CDATA[For your smaller Twitter API projects, bash scripts etc, we have launched SuperTweet.net in case you don&#8217;t get OAuth implemented by the time Basic Auth goes away June 30, 2010. It&#8217;s a Twitter proxy &#8211; you use Basic Auth to talk to the proxy, and it uses OAuth to talk to Twitter. For example, to send a tweet, use the http://api.supertweet.net/1/statuses/update.format such as: curl -u user:password -d "status=playing with cURL and the SuperTweet.net API" http://api.supertweet.net/1/statuses/update.xml The password shown in the example above is never your real Twitter password, but a separate password you set up just for use with the SuperTweet.net API &#8211; As with Twitter OAuth, you can revoke, change, or disable that password without any impact to your real Twitter password or Twitter account.  Also, you can deauthorize the SuperTweet.net API application itself on Twitter.com if you think it&#8217;s being bad, again, without affecting your real Twitter password or other Twitter applications. Learn more: http://www.supertweet.net/]]></description>
			<content:encoded><![CDATA[<p>For your smaller Twitter API projects, bash scripts etc, we have launched <a href="http://www.supertweet.net/">SuperTweet.net</a> in case you don&#8217;t get OAuth implemented by the time Basic Auth goes away June 30, 2010. It&#8217;s a Twitter proxy &#8211; you use Basic Auth to talk to the proxy, and it uses OAuth to talk to Twitter.</p>
<div class="wp-caption alignnone" style="width: 530px"><img class=" " title="Simply Sign-In to SuperTweet.net and you will see a list of your Access Credentials" src="http://www.supertweet.net/images/supertweet_homecreds.png" alt="SuperTweet.net Access Credentials" width="520" height="90" /><p class="wp-caption-text">SuperTweet.net Access Credentials</p></div>
<p>For example, to send a tweet, use the <span style="font-family: Courier New;">http://api.supertweet.net/1/statuses/update<em>.format</em></span> such as:</p>
<p style="margin-left: 40px;"><code>curl -u user:password -d  "status=playing with cURL and the SuperTweet.net  API" http://api.supertweet.net/1/statuses/update.xml</code></p>
<p>The password shown in the example above is never your real Twitter password, but a separate password you set up just for use with the SuperTweet.net API &#8211; As with Twitter OAuth, you can revoke, change, or disable that password without any impact to your real Twitter password or Twitter account.  Also, you can deauthorize the SuperTweet.net API application itself on Twitter.com if you think it&#8217;s being bad, again, without affecting your real Twitter password or other Twitter applications.</p>
<p>Learn more: <a title="It's a Twitter proxy - you use Basic Auth to talk to the proxy, and it uses OAuth to talk to Twitter. Easy peasy." href="http://www.supertweet.net/">http://www.supertweet.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2010/05/20/an-answer-for-twitter-oauth-pacalypse/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Is it time to drop the Twit, Tweet, etc. from your App Name?</title>
		<link>http://mrblog.org/2010/04/10/is-it-time-to-drop-the-twit-tweet-etc-from-your-app-name/</link>
		<comments>http://mrblog.org/2010/04/10/is-it-time-to-drop-the-twit-tweet-etc-from-your-app-name/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 19:13:45 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[business models]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1123</guid>
		<description><![CDATA[There has been a storm of sorts this past week surrounding Twitter, their developers, and the &#8220;ecosystem&#8221;.  It started with some comments from VC Fred Wilson followed by comments from Twitter CEO Ev Williams in a New York Times interview, and culminating in Twitter buying Atebits and thereby creating an official iPhone app: Tweetie. This has, of course, created quite a stir in the Twitter development community, with accusations that Twitter is &#8220;eating their young&#8221; and pushing third-party developers out of the market. These recent events have really brought home for developers the risk that when building on top of someone else’s platform, they could decide to compete with you head-on. Of course we&#8217;ve seen this many times in the past, most notably with Microsoft, but also with Google, Cisco, and many others. Those seeking funding for Twitter mashups often struggle with this push-back from potential investors. Perhaps now, that will become even worse and it will be even harder to get funding for a Twitter-based product or service. That&#8217;s not good news for Twitter. While their platform is popular, with a claimed 50,000 developers, it&#8217;s still relatively small, compared to Facebook with 500,000 or Apple&#8217;s 185,000 apps in the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1128" style="border: 2px solid #ccc;" title="twitter-backstab" src="http://mrblog.org/wp-content/uploads/2010/04/twitter-backstab.png" alt="twitter-backstab" width="232" height="135" />There has been a storm of sorts this past week surrounding Twitter, their developers, and the &#8220;ecosystem&#8221;.  It started with some <a href="http://www.avc.com/a_vc/2010/04/the-twitter-platform.html" target="_blank">comments from VC Fred Wilson</a> followed by comments from Twitter CEO Ev Williams in a <a href="http://bits.blogs.nytimes.com/2010/04/09/evan-williamss-message-to-twitter-developers/" target="_blank">New York Times interview</a>, and culminating in Twitter <a href="http://blog.twitter.com/2010/04/twitter-for-iphone.html" target="_blank">buying Atebits</a> and thereby creating an official iPhone app: Tweetie.</p>
<p>This has, of course, created quite a stir in the Twitter development community, with accusations that Twitter is &#8220;eating their young&#8221; and pushing third-party developers out of the market.</p>
<p>These recent events have  really brought home for developers the risk that when building on top of someone else’s platform, they could decide to compete with you head-on. Of course we&#8217;ve seen this many times in the past, most notably with Microsoft, but also with Google, Cisco, and many others. Those seeking funding for Twitter mashups often struggle with this push-back from potential investors.  Perhaps now, that will become even worse and it will be even harder to get funding for a Twitter-based product or service.</p>
<p>That&#8217;s not good news for Twitter. While their platform is popular, with a claimed 50,000 developers, it&#8217;s still relatively small, compared to Facebook with 500,000 or Apple&#8217;s 185,000 apps in the app store. Furthermore, both Facebook and Apple’s App Store have spawned lucrative breakouts like Zynga, Tapulous and PopCap, while Twitter’s ecosystem has yet to produce a similar hit in terms of revenue, to say nothing of profit. Even among the most popular Twitter apps with lots of users, there are plenty of companies <em>burning</em> cash, but few <em>producing</em> any.</p>
<p>So, <strong>is it time to drop the &#8220;twit&#8221; or &#8220;tweet&#8221; from your brand name</strong> and become less intricately linked and integrated with Twitter and the Twitter platform?   Or is this a perfect time to show loyalty to Twitter in the hope that they reward you for that loyalty?  To Twit, or not to Twit. That, is the question.  What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2010/04/10/is-it-time-to-drop-the-twit-tweet-etc-from-your-app-name/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitmart ported OFF of Google App Engine</title>
		<link>http://mrblog.org/2009/10/16/twitmart-ported-off-of-google-app-engine/</link>
		<comments>http://mrblog.org/2009/10/16/twitmart-ported-off-of-google-app-engine/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 16:39:45 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[appengine]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=1004</guid>
		<description><![CDATA[I discussed a few weeks ago how I had ported the Twitmart.org site to Google App Engine for Java as an experiment.  This was an excellent learning experience.  Unfortunately, the performance on App Engine was simply unacceptable, so now the site is back off of App Engine and running on one of my own servers again. You can actually compare the difference side-by-side by comparing the performance on a native Java web server (Jetty) platform vs. the exact same code running on App Engine: Java Jetty &#8211;&#62; http://twitmart.org Google App Engine &#8211;&#62; http://twitmart.appspot.com This shows pretty clearly that the performance issues aren&#8217;t Twitter (most of the time) nor are they in my Java webapp implementation. The same code is running on both platforms. Nor is it hardware &#8211; the machine running Twitmart.org is a very modest server that is hosting a large number of other sites. The showstopper problem for Twitmart on App Engine is that Twitmart.org is a Twitter mashup using the the Twitter API. It turns out that Twitter API calls from App Engine fail frequently. I&#8217;m not sure why. It should not be due to throttling as the app uses authentication but on the other hand it [...]]]></description>
			<content:encoded><![CDATA[<p>I discussed a few weeks ago how I had <a href="http://mrblog.org/2009/10/01/experimenting-with-google-appengine-for-java/">ported the Twitmart.org site to Google App Engine for Java</a> as an experiment.  This was an excellent learning experience.  Unfortunately, the performance on App Engine was simply unacceptable, so now the site is back off of App Engine and running on one of my own servers again.</p>
<p>You can actually compare the difference side-by-side by comparing the performance on a native Java web server (Jetty) platform vs. the exact same code running on App Engine:</p>
<p style="padding-left: 30px;">Java Jetty &#8211;&gt; <a href="http://twitmart.org" target="_blank">http://twitmart.org</a><br />
Google App Engine &#8211;&gt; <a href="http://" target="_blank">http://twitmart.appspot.com</a></p>
<p>This shows pretty clearly that the performance issues aren&#8217;t Twitter (most of the time) nor are they in my Java webapp implementation. The same code is running on both platforms. Nor is it hardware &#8211; the machine running Twitmart.org is a very modest server that is hosting a large number of other sites.</p>
<p>The showstopper problem for <strong>Twitmart</strong> on App Engine is that Twitmart.org is a Twitter mashup using the the Twitter API. It turns out that Twitter API calls from App Engine fail frequently. I&#8217;m not sure why. It should not be due to throttling as the app uses authentication but on the other hand it could possibly be that Twitter is overwhelmed by API calls from the App Engine platform and therefore throttles the entire Google infrastructure. I think the most likely answer is just that App Engine has problems making API calls (HTTP requests) in general, because I&#8217;ve seen this same problem to other APIs besides Twitter from App Engine, such as the <a href="http://mrblog.org/2009/01/30/google-app-engine-teases-but-ultimately-doesnt-deliver/">issues we had with the Taglets API</a>.</p>
<p>Regardless, it&#8217;s bad for App Engine and Twitter Mashups. It means Google&#8217;s platform is not useful for Twitter mashups or any kind of mashups. That sucks and makes the platform much less useful in general.</p>
<p>Beyond that showstopper issue for Twitmart.org (and all Twitter mashups considering using Google App Engine), is the performance / consistency in general. For no clear reason, about 20% of requests just take a ridiculous amount of time on App Engine, even to do the simplest thing. E.g. a url that simply renders a template, that usually takes sub 100ms, will about 20% of the time, take 3-5 seconds or more. That&#8217;s simply too high of a &#8220;near-fail&#8221; rate for a &#8220;serious&#8221; application.</p>
<p>I hope that Google does address these issues and start to take serving &#8220;important&#8221; applications seriously. The idea of cloud computing in general, and Google&#8217;s &#8220;App Engine&#8221; approach specifically, is really cool. It&#8217;s very attractive to have someone else taking care of the servers, the network, patches, etc. However, there is a certain performance bar the service has to meet too, and unfortunately, Google isn&#8217;t making it yet, even for the price of &#8220;free&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2009/10/16/twitmart-ported-off-of-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Experimenting with Google AppEngine for Java</title>
		<link>http://mrblog.org/2009/10/01/experimenting-with-google-appengine-for-java/</link>
		<comments>http://mrblog.org/2009/10/01/experimenting-with-google-appengine-for-java/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 00:10:12 +0000</pubDate>
		<dc:creator>MrBlog</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[appengine]]></category>

		<guid isPermaLink="false">http://mrblog.org/?p=933</guid>
		<description><![CDATA[A while back, I noted that Google had announced that they would be supporting Java on their AppEngine cloud computing platform. I finally got around to working on a significant AppEngine for Java project (something beyond &#8220;hello world&#8221; or the demo &#8220;Guestbook&#8221; app). Working with my friend and colleague, and serious Java guru, Mark Petrovic we decided that a good &#8220;Goldilocks&#8221; candidate, that was neither too big, nor too trivial, was the experimental service Twitmart.org, a classifieds marketplace mashup, using Twitter APIs. We decided that &#8220;porting&#8221; an existing web-based application rather than inventing a new one made more sense because this way we really didn&#8217;t have to think a lot about the design or functional specifications.  We already had them. We just had to think about how to implement to those specifications on a Java-based web application platform, and specifically, the Google AppEngine for Java platform. With the Twitmart application, the first thing to address was that the site uses Restful-style urls (as opposed to a fully Restful architecture, for you Rest weenies). This introduces a number of issues. The AppEngine for Java platform implements the venerable, but now decade-old, Java Servlet API. Servlets don&#8217;t naturally support the clean urls [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I noted that Google had announced that they would be supporting Java on their AppEngine cloud computing platform. I finally got around to working on a significant AppEngine for Java project (something beyond &#8220;hello world&#8221; or the demo &#8220;Guestbook&#8221; app).</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/4nqMmG3TYtM&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/4nqMmG3TYtM&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Working with my friend and colleague, and serious Java guru, <a href="http://radioae6rt.wordpress.com/" target="_blank">Mark Petrovic </a> we decided that a good &#8220;Goldilocks&#8221; candidate, that was neither too big, nor too trivial, was the experimental service <a title="Twitmart is a free classifieds marketplace using Twitter." href="http://www.twitmart.org/about/factsheet" target="_blank">Twitmart.org</a>, a classifieds marketplace mashup, using Twitter APIs.</p>
<p>We decided that &#8220;porting&#8221; an existing web-based application rather than inventing a new one made more sense because this way we really didn&#8217;t have to think a lot about the design or functional specifications.  We already had them. We just had to think about how to implement to those specifications on a Java-based web application platform, and specifically, the Google AppEngine for Java platform.</p>
<p>With the <strong>Twitmart</strong> application, the first thing to address was that the site uses Restful-style urls (as opposed to a fully Restful architecture, for you Rest weenies). This introduces a number of issues. The AppEngine for Java platform implements the venerable, but now decade-old, <a title="the Java Servlet standard " href="http://java.sun.com/products/servlet/" target="_blank">Java Servlet API</a>. Servlets don&#8217;t naturally support the clean urls that are essential in modern web applications.</p>
<p>Bad =&gt; <code>/post.jsp?type=area&amp;hash=forsale&amp;postid=hKqo1</code><br />
Good =&gt; <code>/post/area/forsale/hKqo1</code></p>
<p>One way to go about this is to do it the old fashioned hard-coded way and manually parse urls and forward to servlets for the action. We considered doing so, as a last resort, but it would be painful and potentially a maintenance nightmare.</p>
<p>We had hoped to use <a title="Reference Implementation for building RESTful Web services" href="https://jersey.dev.java.net/" target="_blank">Jersey </a>but found that it was <a title="Thread on Jersey and Google App Engine" href="http://n2.nabble.com/Jersey-and-Google-App-Engine-update-td3668720.html" target="_blank">not quite there yet</a> in terms of compatibility with Google AppAngine, although it looks like there is progress and we will see at least a subset of Jersey supported on AppEngine at some point. For this project, we decided that the outstanding issues with Jersey on AppEngine were more than we wanted to deal with. Since <strong>Twitmart</strong> is a <em>web site</em> rather than a <em>web service API</em>, perhaps Jersey isn&#8217;t quite the right platform anyway.</p>
<p>Regardless, we went with <a title="Restlet Lightweight REST framework" href="http://www.restlet.org/" target="_blank">Restlet</a>, which does <a title="Restlet edition for Google App Engine" href="http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/252-restlet.html" target="_blank">support AppEngine in their latest unstable releases</a>. Going with Restlet meant that we also needed a compatible template engine to replace JSP. We went with <a href="http://freemarker.org/" target="_blank">Freemarker</a> which is supported as a <a href="http://www.restlet.org/documentation/snapshot/jse/ext/org/restlet/ext/freemarker/package-summary.html" target="_blank">Restlet extension</a>.</p>
<p>There are many Java libraries for accessing Twitter APIs. We went with <a href="http://yusuke.homeip.net/twitter4j/en/index.html" target="_blank">Twitter4J</a> which appears to be the most AppEngine friendly (and it&#8217;s a nice, clean API too).</p>
<p>With all of these building blocks in place, the port of <strong>Twitmart</strong> to AppEngine for Java was mostly a matter of grinding it out. Here&#8217;s a bunch of stuff we learned in the process:</p>
<p style="padding-left: 30px;"><strong>Restlet, Freemarker, and Twitter4J work on AppEngine</strong></p>
<p style="padding-left: 30px;">The <strong>Twitmart</strong> application doesn&#8217;t exercise every part of any of these tools, but the basics clearly work. That&#8217;s nice to know. We will use these again on future projects.</p>
<p style="padding-left: 30px;"><strong>Servlets and Restlets can co-exist</strong></p>
<p style="padding-left: 30px;">A few of the operations that <strong>Twitmart</strong> does were better suited to traditional servlets. With some effort, we probably could have made them work as Restlets, but it was much quicker and easier to make them servlets, so that&#8217;s what we did. And it works. Servlet urls are directed to servlet classes in the usual way in the <code>web.xml</code> config while everything else is passed through the Restlet adapter/router class.</p>
<p style="padding-left: 30px;"><strong>The AppEngine Text class overcomes the 500-character limit of Strings in the datastore</strong></p>
<p style="padding-left: 30px;">The datastore will only accept Strings of up to 500 characters. To store larger text, one must use blobs. AppEngine provides a Text class that makes this pretty easy &#8211; but it does make your application more AppEngine specific. A Text object cannot be viewed in the datastore viewer (admin panel) and they cannot be indexed or queried.</p>
<div style="margin: 10px 60px 10px 60px; padding: 20px; background: #E0EEB6; border: 2px solid #666"><code>@Persistent(defaultFetchGroup = "true")<br />
private Text desc;</code></div>
<p style="padding-left: 30px;"><strong>It&#8217;s not that hard to put arbitrary Java objects into the datastore</strong></p>
<p style="padding-left: 30px;">The <strong>Twitmart</strong> application accepts images uploaded by users to display with classified ad postings. Since AppEngine has no writeable file system, these &#8220;image files&#8221; must be placed into (and retrieved from) the datastore.  This turns out to be pretty easy, as long as the size of the data conforms to AppEngine&#8217;s limits &#8211; e.g. 1MB per datastore entity (see <a href="http://code.google.com/appengine/docs/java/datastore/overview.html" target="_blank">http://code.google.com/appengine/docs/java/datastore/overview.html</a>)</p>
<div style="margin: 10px 60px 10px 60px; padding: 20px; background: #E0EEB6; border: 2px solid #666"><code>@Persistent(serialized = "true")<br />
private ImageFile imgfile1;</code></div>
<p style="padding-left: 30px;"><strong>Objects in the datastore have unexpecetd dependencies</strong></p>
<p style="padding-left: 30px;">I don&#8217;t know if  Java bytecode ends up in the datastore or not, but it kind of feels like it does. When we rearranged some classes, we discovered that datastore records using those classes failed with <code>ClassNotFound</code> errors. I guess we should have expected this, but it&#8217;s something to keep in mind &#8211; once something is written to the datastore, never move the class.</p>
<p>As I&#8217;ve <a href="http://mrblog.org/2009/01/30/google-app-engine-teases-but-ultimately-doesnt-deliver/">noted before</a>, the AppEngine datastore is not an RDBMS, despite providing a query capability that might make you think otherwise at first glance. The AppEngine datastore is based on the <a href="http://labs.google.com/papers/bigtable.html" target="_blank">BigTable</a> storage system. BigTable follows a very different philosophy than traditional RDBMS and, as a result, imposes <a href="http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html" target="_blank">many important restrictions</a>. Knowing this from prior work on <a href="http://www.taglets.org">Taglets.org</a> and <a href="http://www.facebook.com/apps/application.php?id=75215734266">other projects</a> on AppEngine for Python, I knew about these restrictions and, in fact, the <strong>Twitmart</strong> application <strong>doesn&#8217;t make any queries at all</strong>; it always <a href="http://code.google.com/appengine/docs/java/datastore/creatinggettinganddeletingdata.html#Getting_an_Object_By_Key" target="_blank">retrieves objects (records) by key</a> and never via query.</p>
<p>Another lesson from our experience with the Python AppEngine was <em>&#8220;be prepared to move off AppEngine&#8221;</em> (for any number of reasons). This means trying to structure your application such that moving to a standard platform will not require a complete re-write. One place to start is to avoid any <code>com.google.appengine.*</code> imports. In the case of this <strong>Twitmart</strong> app, the only place we do that is for the special <code>com.google.appengine.api.datastore.Text</code> class (in order to store text strings larger than 500 characters). This is isolated to a couple of Java classes in this application, but in a larger app, or if such things found their way into too many places, it would be best to write abstraction libraries of some kind to make it easier to separate out AppEngine dependencies later.</p>
<p>The <strong>Twitmart</strong> app, as written, should run on any standard Java web application platform, such as Jetty, pretty easily. However, that said, while using JDO as the data management interface works, in theory, as a way to make your application work on AppEngine and on a standard platform, it might not turn out to be the best way, or the most common technique for managing data on standard web application platforms, in practice. In many cases, you would probably want to add an abstraction layer around your data models to make it easier to swap in different low-level APIs. I think in general, the AppEngine for Java platform makes this easier and more natural than the AppEngine for Python platform, where it takes a lot more effort to keep your app standard-platform ready.</p>
<p>The <strong>Twitmart</strong> port is not done. There are few functions left to implement and a few things still to fix in terms of better exception handling and related cleanup and enhancement, but the primary functionality is operational.  In practice, even with light usage, it is slower on AppEngine than it was on my own server, but I guess that&#8217;s the price you pay for &#8220;free&#8221; &#8211; so much for scaleable. I guess the theory is, on AppEngine it will show similarly poor performance for a dozen users as it does for 100,000 users. <img src='http://mrblog.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Summary</strong></p>
<p>If I develop more AppEngine apps, I&#8217;m going to use the Java AppEngine for sure over the Python AppEngine. Unless there is some really compelling reason (like a specific library I want to use) I don&#8217;t see me writing another App Engine app in Python ever again.</p>
<p>While I still don&#8217;t think Google AppEngine is ready for anything too important yet, if it ever will be, having a Java version is a big step in expanding the possible uses of Google&#8217;s cloud computing platform, IMHO, and I will almost certainly deploy more experimental applications like <a href="http://twitmart.org">Twitmart</a> using AppEngine for Java in the future.</p>
<p><strong>References:</strong></p>
<ul>
<li> <a href="http://code.google.com/appengine/docs/java/overview.html">Google App Engine for Java</a></li>
<li><a href="http://www.restlet.org/">Restlet</a></li>
<li><a href="http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/252-restlet.html">Restlet edition for Google App Engine</a></li>
<li><a href="http://freemarker.org/">Freemarker</a></li>
<li> <a href="http://www.restlet.org/documentation/snapshot/jse/ext/org/restlet/ext/freemarker/package-summary.html">Freemarker extension for Restlet</a></li>
<li><a href="http://yusuke.homeip.net/twitter4j/en/index.html">Twitter4J</a></li>
<li><a href="http://twitmart.org">Twitmart.org</a></li>
</ul>
<p><strong>UPDATE October 16, 2009:</strong> The performance on App Engine was so poor that we had to move the Twitmart.org site off of App Engine and back to one of our own servers.  Details <a href="http://mrblog.org/2009/10/16/twitmart-ported-off-of-google-app-engine/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.org/2009/10/01/experimenting-with-google-appengine-for-java/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

