<?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>JoeCascio.net &#187; twitter</title>
	<atom:link href="http://joecascio.net/joecblog/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://joecascio.net/joecblog</link>
	<description>Everyone is entitled to my opinion</description>
	<lastBuildDate>Wed, 30 Jun 2010 12:36:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Welcome to Twitter, Natalie. Can we talk&#8230;?</title>
		<link>http://joecascio.net/joecblog/2008/12/29/welcome-to-twitter-natalie-can-we-talk/</link>
		<comments>http://joecascio.net/joecblog/2008/12/29/welcome-to-twitter-natalie-can-we-talk/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 17:54:15 +0000</pubDate>
		<dc:creator>JoeC</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[golf]]></category>
		<category><![CDATA[Natalie Gulbis]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://joecascio.net/joecblog/?p=150</guid>
		<description><![CDATA[If you&#8217;re a golfer like me, or familiar at all with the sport, you&#8217;ve probably heard of Natalie Gulbis. She&#8217;s the leggy, blond golf pro who not only looks good, but has the game to have won on the LPGA tour, which is no mean feat. Most professional golfers struggle for years and never come [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a golfer like me, or familiar at all with the sport, you&#8217;ve probably heard of <a title="Natalie's web site" href="http://nataliegulbis.com" target="_blank">Natalie Gulbis.</a> She&#8217;s the leggy, blond golf pro who not only looks good, but has the game to have won on the LPGA tour, which is no mean feat. Most professional golfers struggle for years and never come close to winning a tournament. She also was a standout in the Solheim Cup in 2005, helping the US to a win in the team matches with Europe.</p>
<p><img class="alignright" title="Natalie Gulbis" src="http://i17.photobucket.com/albums/b61/TheRedSox1024/natgulbis.jpg" alt="" width="250" height="396" />This week, I discovered that she&#8217;s now on Twitter as <a title="Natalie's Twitter profile" href="http://twitter.com/natalie_gulbis" target="_blank">@Natalie_Gulbis. </a>She is, as far as I know, the first top-tier professional golfer of any tour to be on Twitter. Yay, Natalie!! That she would be the first is totally in keeping with her accessible, outgoing and friendly personality.</p>
<p>At this writing (Dec 29. 2008), she only follows 4 people and is followed by only 234. But I give her and her agent major props for realizing Twitter is a good place to be. Like anyone new to Twitter, it may take a little time to discover how it works. I&#8217;m hoping that unlike many celebrities, she will really get in and talk with people.</p>
<p>Of course, someone like Natalie Gulbis needs to be careful with the public. I can imagine she has more than her share of unwanted attention. But at least on Twitter, you don&#8217;t have to hear from anyone you don&#8217;t want to. And there is so much to be gained from engaging with people and making new acquaintances and friends, not to mention drawing non-golfers into the sport.</p>
<p>If I may make a suggestion, it will be the same as to anyone new to Twitter. Listen first, follow first. If you hear something interesting chime in. Make an observation, a joke, ask a question or state your opinion. Most importantly, be a person, not an inaccessible celebrity. Twitter is a conversational medium, a means for introducing and connecting people, not just another broadcast channel. Let that sunny personality of yours show through. You&#8217;ll find we&#8217;re a friendly lot and you&#8217;re more than welcome to join the conversation.</p>
]]></content:encoded>
			<wfw:commentRss>http://joecascio.net/joecblog/2008/12/29/welcome-to-twitter-natalie-can-we-talk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Distributed Microblogging UI ideas for DevHouseBoston</title>
		<link>http://joecascio.net/joecblog/2008/06/27/distributed-microblogging-ui-ideas-for-devhouseboston/</link>
		<comments>http://joecascio.net/joecblog/2008/06/27/distributed-microblogging-ui-ideas-for-devhouseboston/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 15:49:27 +0000</pubDate>
		<dc:creator>JoeC</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[devhouseboston]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[distributed microblogging]]></category>
		<category><![CDATA[distributed microblogging devhouseboston]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://peeps.3greeneggs.com/joecblog/?p=21</guid>
		<description><![CDATA[This Sunday, June 29, 2008, I will be attending DevHouseBoston. I&#8217;ve proposed a project called Distributed Microblogging. My primary goal for the day is to get a UI defined. If we can prototype something, so much the better, but I think the discussions going on in the online community really need to have some attention [...]]]></description>
			<content:encoded><![CDATA[<p>This Sunday, June 29, 2008, I will be attending DevHouseBoston. I&#8217;ve proposed a project called Distributed Microblogging. My primary goal for the day is to get a UI defined. If we can prototype something, so much the better, but I think the discussions going on in the online community really need to have some attention given to exactly what microblogging is, as opposed to how to do it. Many &#8220;how&#8221; proposals miss important requirements or add what I consider unnecessary ones.</p>
<p>So I&#8217;ve been putting together the following list of what I consider to be important features that a good microblogging function should have. In most cases, I&#8217;ve approached it from how it should appear to the user. If you are coming to DevHouseBoston on Sunday, you might want to read this list over and come prepared to argue the merits of different points, add your own, or if you&#8217;re a UI designer, contribute to a discussion of how to design a UI that incorporates these features.</p>
<p>Remember that one of the benefits of an open system is that there can be many different UIs to choose from!</p>
<p>So, following, is the list in a very raw and unpolished form.</p>
<p><strong>Note: DMB means Distributed Microblogging.</strong></p>
<h3>Feature list for dmb UI</h3>
<p>Omnipresent replies, direct messages tabs or buttons.<br />
Tags on other microblogs, on posts, on other tags?</p>
<p>Direct support for conversations, replies, etc.<br />
Main page. Like twitter. Update input box at top, but maybe with separate scrolling list of stream.<br />
Multiple streams showing, replies, all, selected person&#8217;s archive, including user&#8217;s archive.<br />
&#8220;Hide&#8221; check boxes for each user. Clicking it removes their updates from stream list, and places their name in the a &#8220;hidden&#8221; list for easy reinstatement.</p>
<p>Also would be able to show/hide certain groups.</p>
<p>Conversation support. Each tweet would have a &#8220;reply&#8221; button. Clicking it would add the @user_name to the beginning of the update, and also make a database entry linking the update to one or more previous updates. The @&#8217;d user names would be like the &#8220;to&#8221; list on an email. Each update could have multiple other updates it was in-reply-to. This is a many-to-many relationship. An update can be in response to multiple other updates, and clearly an update can have many responses to it.</p>
<p>Updates have GUIDs. Required by IMPP.</p>
<p>Tabs for different subsets of users = from Mike Gaines. &#8220;tag-tab&#8221; <img src='http://joecascio.net/joecblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Separate input area for different tag-tabs.</p>
<p>Topics for User experience<br />
Conversations. What can you do? How are they shown?<br />
Multiple addressees (like email?)<br />
Latest on top or on the bottom? User pref?<br />
Classes of messages<br />
Direct<br />
Narrowcast (to a group tag?)<br />
Broadcast (or is this simply to all tags?)<br />
Temporary silencing (show/hide checkbox) So I can turn off someone who is usually ok, but is just ranting or something.</p>
<p>Ad-hoc grouping. Drag users into a tab where you see only their tweets.<br />
Public ad-hoc groups. All your followers can see tweets. You just filter locally.<br />
Private ad-hoc groups. Just the people in the group see the tweets.</p>
<p>General question.. will adding private groups destroy some of the vibrancy and serendipity of Twitter?</p>
<p>How to present tagging in the UI so it&#8217;s intuitive with what it does for the user, as opposed to a geeky abstract function?</p>
<p>What can be tagged, and hence grouped? Users, convos, even other tags? Locations? languages? specific tweets having to do with a certain subject? others?</p>
<p>Universally unique tags vs. private tags. UUtags would be very helpful for organizing large tagging efforts. But, how to agree on a tag for say, &#8220;SocialMediaBreakfast8&#8243;?</p>
<p>theRQ  would be great to be able to send/post an out &#8220;out of stream&#8221; message to someone that they get upon login- wouldn&#8217;t age off. (subject to spam abuse?)</p>
<p>Search &#8211; Let Google do it? What about private mblogs? Can individual servers be expected to support a general search capability? Thru XMPP? Thru HTTP?</p>
<p>Show me when I have new, unread DMs.</p>
<p>Multiple addressees for DMs. Now it&#8217;s beginning to look like email.</p>
<p>Show me when I have new, unread messages.<br />
Show me when I have new, unread messages from specific people or groups. (on that tag-tab?)</p>
<p>Auto-update (ala chat) vs. manual update.</p>
<p>Rich content. Photos, audio. (How to transmit to mobile devices?)</p>
<p>How to add these features without sacrificing the simplicity?</p>
<p>A few lines when you request to follow, so you can explain why. Either that or a listing of common friends on different sites.</p>
<p>What about the Twitter community? Can it be made part of DMB? Can we build an interface to Twitter? Will Twitter participate in DMB?</p>
<p>What about other communities that start up? Twitter has very amorphous sub-communities.</p>
<h3>Implementation questions:</h3>
<p>Use XMPP archiving or external? (some xmpp archiving options not applicable, like off the record, although they might be of interest)</p>
<p>How to do multiple servers?</p>
<p>How to map mb posts onto &#8220;collections&#8221; in xmpp archiving. Another reason to use external archving?</p>
<p>If we did external archiving it would relieve the burden of archiving on servers that could be used. Although they&#8217;re more likely to support archiving than pubsub.</p>
]]></content:encoded>
			<wfw:commentRss>http://joecascio.net/joecblog/2008/06/27/distributed-microblogging-ui-ideas-for-devhouseboston/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BarCampBoston update and what&#8217;s Coming Up&#8230;</title>
		<link>http://joecascio.net/joecblog/2008/05/20/barcampboston-update-and-whats-coming-up/</link>
		<comments>http://joecascio.net/joecblog/2008/05/20/barcampboston-update-and-whats-coming-up/#comments</comments>
		<pubDate>Tue, 20 May 2008 16:04:45 +0000</pubDate>
		<dc:creator>JoeC</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[barcampboston]]></category>
		<category><![CDATA[barcampboston berk]]></category>
		<category><![CDATA[berkman]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://peeps.3greeneggs.com/joecblog/?p=13</guid>
		<description><![CDATA[BarCampBoston3
I had the pleasure of speaking at BarCampBoston3 this past Saturday in Cambridge, MA on the topic &#8220;Distributed Twitter&#8221;. This was a well-attended event and the geek energy was high! BarCamps attract and cater to hard-core coders and implementers. Not many marketing, PR or media types were in evidence, but there were quite a few [...]]]></description>
			<content:encoded><![CDATA[<p><a title="BarCampBoston web site" href="http://barcampboston.org" target="_blank"><strong>BarCampBoston3</strong></a></p>
<p>I had the pleasure of speaking at BarCampBoston3 this past Saturday in Cambridge, MA on the topic &#8220;Distributed Twitter&#8221;. This was a well-attended event and the geek energy was high! BarCamps attract and cater to hard-core coders and implementers. Not many marketing, PR or media types were in evidence, but there were quite a few startup CEOs there looking for help.</p>
<p>One particularly useful session for me was at the start of the day, when Matt Douglas, CEO of <a title="MyPunchBowl.com web site" href="http://mypunchbowl.com" target="_blank">MyPunchBowl.com, </a>brought together companies looking for help with developers looking for work. It was very informal, we all got 10 seconds to say who we were and what we were looking for. I made a couple of promising connections there, so that in itself was worth the 90 minute drive from my home in Connecticut to Cambridge. Thanks, Matt and MyPunchBowl! This kind of Hook-me-up session should be a part of every BarCamp.</p>
<p>I was pleased that my session on Distributed Twitter attracted a packed room. Unfortunately, I completely zoned and missed the fact that sessions were only 1/2 hour, so I had to cut things short, but I did meet some interesting people who were interested in trying to get a project off the ground to actually build something.</p>
<p>I had some interesting follow-up discussions later in the day with people who were at my talk, but unfortunately, did not get to tell all at the meeting about the Distributed Twitter Google Group. Probably no biggie since I&#8217;m going to have to change the name of the group anyway, to avoid the inevitable cease-and-desist letter from Twitter.com&#8217;s lawyers for using their name.</p>
<p>One of the big reasons I went to BarCamp was to try to connect with mobile developers since a big part of decentralizing a microblogging platform is to provide the mobile connection that Twitter has. Many people use Twitter almost exclusively on their phones. I did meet two young fellows who seemed very interested in creating a mobile app to interface directly to a microblogging platform. Their advice was to skip SMS for demo purposes and simply use the mobile IP connectivity. Their POV was that SMS will go away in due time to be replaced by the more flexible and extensible IP protocol directly to apps on the phone. I&#8217;m not sure I buy the argument that you don&#8217;t need to have an SMS connection. SMS will be around for a while to come yet, and not having it could hamper uptake severely.</p>
<p>I had other interesting conversations regarding the use of XMPP as the &#8220;carrier&#8221; protocol for microblogging services. It was suggested to use Google&#8217;s gTalk service to experiment with since it&#8217;s a fully compliant (I think) XMPP end-point.</p>
<p>I continue to have some challenges with XMPP proponents not fully appreciating that microblogging is more like blogging than instant-messaging or chat. I&#8217;ll confess I don&#8217;t understand the differences completely myself, but I do see that there are some and that they are significant to a proper implementation. For instance, microblogging does not have the requirement or notion of presence. As a user, you don&#8217;t need to be &#8220;present&#8221; to get all the updates that people may send. You should be able to go back at any time and get the complete history of a microblog&#8217;s updates, just like it was a blog. Related to presence is the notion that senders of content aren&#8217;t responsible for keeping a permanent copy around for receivers to reference and search. More about this at a later time, but one shouldn&#8217;t have to rely on being &#8220;present&#8221; or having your receiving server make a copy of everything that a microblog sends to have a complete record. The sender should be responsible for keeping a permanent, permalinkable copy.</p>
<p>So, all in all, BarCampBoston3 was definitely worthwhile but I could have done better had I taken two consecutive sessions, which is allowed, and not have been so pressed for time.</p>
<p><strong>Coming up&#8230;</strong></p>
<p>In the weeks to come, I&#8217;m scheduled to do two more presentations about Distributed Microblogging.</p>
<ol>
<li><a title="IgniteBoston3 announcement" href="http://radar.oreilly.com/archives/2008/05/ignite-boston-3.html" target="_blank">IgniteBoston3 </a>- May 29th, 6 pm at <a title="Tommy Doyle's web site" href="http://www.tommydoyles.com/harvard/" target="_blank">Tommy Doyle&#8217;s</a> in Harvard Square, Cambridge, MA. This will be a quick, 5 minute &#8220;drive-by&#8221; preso just to introduce people to the topic. I&#8217;ll probably just get enough time to describe what it is, why I&#8217;m involved and to pimp preso #2 (next) and refer people to the Google group. If you&#8217;re interested in coming, be sure to register because they always fill up!</li>
<li><a title="Berkman Thursday meetings blog" href="http://blogs.law.harvard.edu/bloggroup/" target="_blank">Berkman Center Thursday Night Meeting </a>- June 5th, (time: tba), at the <a title="Berkman Center main web site" href="http://cyber.law.harvard.edu/" target="_blank">Berkman Center for Internet and Society</a>, Harvard University, 23 Everett St. Cambridge, MA. I&#8217;ll be speaking on Distributed Microblogging. I&#8217;m not sure, but there may be other presenters as well. This is my first time at a Berkman Thursday Night meeting and I&#8217;m very excited.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://joecascio.net/joecblog/2008/05/20/barcampboston-update-and-whats-coming-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distributed Twitter &#8211; the hard bits</title>
		<link>http://joecascio.net/joecblog/2008/05/06/distributed-twitter-the-hard-bits/</link>
		<comments>http://joecascio.net/joecblog/2008/05/06/distributed-twitter-the-hard-bits/#comments</comments>
		<pubDate>Tue, 06 May 2008 18:32:23 +0000</pubDate>
		<dc:creator>JoeC</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[distributed, microblogging, twitter]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://peeps.3greeneggs.com/joecblog/?p=11</guid>
		<description><![CDATA[If you don&#8217;t read all of this admittedly long post, please do skip to the end and check out the BarCampBoston info. I&#8217;ll be holding a session there on the topic of Distributed Microblogging.
Ok, so let&#8217;s talk about the hard bits of doing Distributed Microblogging. It&#8217;s easy to envision a multitude of servers exchanging microblog [...]]]></description>
			<content:encoded><![CDATA[<p><strong>If you don&#8217;t read all of this admittedly long post, </strong>please do skip to the end and check out the <a title="BarCampBoston home page" href="http://www.barcampboston.org/" target="_blank">BarCampBoston </a>info. I&#8217;ll be holding a session there on the topic of Distributed Microblogging.</p>
<p>Ok, so let&#8217;s talk about the hard bits of doing Distributed Microblogging. It&#8217;s easy to envision a multitude of servers exchanging microblog posts, and a UI that simply arranges the posts in chronological order. By the way, chronological order is easy to do if all the servers are synched with a time standard like <a title="National Institute of Standards and Technology" href="http://tf.nist.gov/timefreq/service/its.htm" target="_blank">nist.gov, </a>and most are. But the hard bit is making it work in a way that performs well and scales to large populations of both microblog posters and readers. I&#8217;ve been thinking of some different alternatives for this, which I&#8217;ll lay out here. As always, your thoughts are welcome.</p>
<h3>Performance</h3>
<p>So, what do I mean by &#8220;performs well&#8221;? Well, microblog (ie, Twitter) updates happen much more frequently than what we&#8217;d consider traditional blog posts, but not quite as fast as instant messenger or chat updates. And microblogs don&#8217;t have the notion of presence attached to them. You don&#8217;t worry about whether a Twitter poster is &#8220;on line&#8221; at any particular time, although you may deduce that from the rapidity of their responses to you.</p>
<p>To put a number on it, I&#8217;d say that a microblog post notification should be transmitted in less than a minute, ideally in a few seconds, although a delay of up to 5 minutes is not that objectionable. I frequently will ignore my Twitter feed for many minutes, sometimes hours. I have no expectation that I will see someone&#8217;s posts immediately (i.e., less than a second) nor do I care to. Microblogging is a river of updates. You don&#8217;t expect to see every single one.</p>
<h3>Size</h3>
<p>Now let&#8217;s talk numbers of followers and following. A typical Twitter user has 100 or fewer people that they follow, and a similar number that are following them. But the edge cases are far bigger. Someone like Robert Scoble (@scobleizer) or Chris Brogan (@ChrisBrogan) follow literally thousands of other users, and have even more following them.</p>
<p>Ok, so we need to be able to update thousands of users in nominally less than a minute, but at the exreme less than five minutes. If you don&#8217;t buy that, please leave a comment explaining why these limits are not realistic.</p>
<h3>Alternatives</h3>
<p><strong>RSS feed polling</strong></p>
<p>The simplest solution would be polling, which is reader initiated. Followers would poll the feeds of the microblogs they were interested in. It seems to me that polling has to be discarded as a solution except for occasional or retrospective uses. I think a solution should include RSS feeds but it seems obvious to me that for someone with 100 friends to poll those RSS feeds every minute, or ideally faster because they <strong>might</strong> post something is a stupendous waste of bandwidth.</p>
<p>On the sending side, if that same person had 100 followers, each of those followers would be polling the person&#8217;s RSS feed every few seconds causing a very high server load. Now multiply that by however many people&#8217;s accounts are hosted on that server and the problem quickly blows up.</p>
<p><strong>Notification</strong></p>
<p>A much more efficient solution would be for senders (microblog posters) to notify followers when a new post has been made, and perhaps to proactively send the new content in the notification message. Then, resources are used only when there is actual traffic to send. Both senders and receivers are quiescent when no one is posting. So what are the possibilities for implementing notification? I see the following.</p>
<ol>
<li>RSS cloud API &#8211; a little-known part of the RSS specification, the cloud element allows a feed to publish a web-service address that readers of the feed can register with to be notified of changes using a SOAP or xml-rpc call.</li>
<li>Jabber (XMPP) channels between DMB servers to carry notifications and content.</li>
<li>UDP notification with http callback. UDP is lightweight for both senders and receivers.  No open connections are required between senders and receivers. It&#8217;s sort of like RSS cloud, but narrowly and specifically designed for DMB, as opposed to generalized RSS.</li>
</ol>
<p><a title="RSS cloud spec" href="http://cyber.law.harvard.edu/rss/soapMeetsRss.html" target="_blank"><strong>RSS cloud API</strong></a></p>
<p>The cloud API was specifically designed with this purpose of notifying readers of content updates. Its original intent, judging from the RSS 2.0 spec was to allow actual client feed readers to register with the cloud. In the case of DMB, it would be cooperating servers that would register for notification with each other.</p>
<p>The problem with RSS cloud is overhead. Microblog entries are tiny and frequent compared with blog entries or traditional site updates. To require a follower server to read an entire RSS document to get 140 characters of content, and have this happen every few minutes when the poster updates would be inefficient to say the least. In addition, there is <a title="Forum article on the RSS cloud API" href="http://lists.apple.com/archives/syndication-dev/2006/Jan/msg00032.html" target="_blank">experience with the cloud api</a> that indicates just the HTTP session overhead for notifying many users becomes intolerable, although this was from the perspective of actual clients being notified as opposed to clients&#8217; servers being notified.</p>
<p><strong>Jabber (XMPP)</strong></p>
<p>Jabber is a very tempting candidate for this application, and has been getting quite a bit of discussion in the development community of late. Here&#8217;s <a title="Twitter application of Jabber pubsub" href="http://www.process-one.net/en/blogs/article/introducing_the_xmpp_application_server/" target="_blank">an example</a>. The advantage to Jabber is that it maintains open sessions between servers, which eliminates the session setup/teardown overhead, and allows for almost instantaneous notification of all &#8220;following&#8221; parties.</p>
<p>But this may also be a disadvantage in situations where there are hundreds or thousands of &#8220;followers&#8221; for a single sender. IM or chat is typically one-to-one, or one to a few, but microblogging is frequently one to hundreds or one to thousands. I am not familiar enough with Jabber servers in actual practice to know what their performance or connection limitations are. <strong>Anyone with Jabber implementation or operational experience is strongly encouraged to comment.</strong></p>
<p>Jabber&#8217;s concept of presence could be used to keep the number of messages by only requesting messages updates when a user is actually logged into his/her microblog system. What&#8217;s interesting about this notion is what &#8220;logged in&#8221; means. Microblogging, at least the way Twitter works, does not really require the concept of presence. For instance, you can be &#8220;logged in&#8221; to Twitter, but dormant for hours not getting any updates until you request a page refresh.</p>
<p>In fact, one key aspect of microblogs that differentiates them from IM or chat is that they don&#8217;t typically &#8220;auto-update&#8221;. And rather than this being a disadvantage, I-and I think many others-find this on-demand update to be much more useful than a streaming IM or chat window. It&#8217;s really more like reading small blog posts. I read when <strong>I </strong>want to, not when someone else decides to say something. So, using the presence capability without auto-updating will require a little clever UI design to, in a sense, auto-logoff the user when their web page hasn&#8217;t been refreshed in a certain period of time. This then, will also require the ability of followers to query the senders they follow for &#8220;back posts&#8221;, so they can see what happened in the past without keeping a client logged in all the time to save all the posts.</p>
<p><strong>UDP for notification</strong></p>
<p>In the past year, I did some work on a revamped email protocol I called IMTP that uses small UDP messages to notify receiving servers that the sender has some traffic for them. The receiver then calls back to the sender using TCP to get the message body. This was based on Prof. Daniel Bernstein&#8217;s <a title="Internet Mail 2000 page" href="http://cr.yp.to/im2000.html" target="_blank">Internet Mail 2000 </a>proposal several years ago. He proposed, quite rightly in my opinion, that mail senders should bear the burden of storing the message contents, not the receivers, and that mail content should only be sent when a receiver actually wants to read it.</p>
<p>The advantage to UDP is that it is very light weight for both the sender and the receiver, not requiring any session overhead or setup/teardown. If used for microblogging, UDP notification messages could take the place of the continuously open TCP sessions that Jabber employs, thus reducing the session resource allocation load on both ends.</p>
<p>Now, of course, the issue with UDP is that it is not guaranteed to be delivered. The IMTP service we built would retry the UDP message at some frequency until the receiver called back to either fetch or reject the message.</p>
<p>Conceptually, using UDP messages with a 140 character payload and a message number would fit a microblogging application very well.  Because microblogging has no expectation or requirement of presence or real-time delivery like chat and IM do, a dropped UDP message is not a tragedy. If the sender retried even once or twice per minute, that would be plenty of timeliness for microblogging. Plus, if the UDP messages carry a monotonically increasing message number, the receiver can know if they&#8217;re missed a message and simply call back to the sender to get it. The microblogging UI can reconstruct the sequence easily when the missing pieces, if any, finally come through.</p>
<p>A notification system using UDP would seem to minimize the resource requirements on both senders and receivers, and can perform the same kind of message fan-in/fan-out optimization that Jabber could. In other words, a given microblog update body needs to be sent only once to any server, regardless of how many followers there may be on that destination server.</p>
<p><strong>Comments, please!</strong></p>
<p>I am very interested in what others think and have to say about these issues. This problem of efficient and <em>timely-enough</em> notification, it seems to me, is the tough nut to crack for a good solution to microblogging.</p>
<p>By the way, I am going to do a session on Distributed Twitter (or Microblogging) at <a title="BarCampBoston home page" href="http://www.barcampboston.org/" target="_blank">BarCampBoston3 on May 17, 18. </a>We are going to try to bring in some mobile technology folks to discuss the other really interesting issue with Distributed Twitter, the SMS connection.</p>
<p>Also, at BarCampBoston, I am going to try to organize some kind of group to try implementing a Distributed Microblogging application going forward.</p>
]]></content:encoded>
			<wfw:commentRss>http://joecascio.net/joecblog/2008/05/06/distributed-twitter-the-hard-bits/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
