<?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>Renaud Bourassa &#187; Twitter</title>
	<atom:link href="http://renaudbourassa.com/blog/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://renaudbourassa.com/blog</link>
	<description>Welcome to my World. Here, I am the Architect.</description>
	<lastBuildDate>Thu, 19 Jan 2012 05:45:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>DHTwitter: A Vision of a Distributed Twitter</title>
		<link>http://renaudbourassa.com/blog/2009/06/10/dhtwitter-a-vision-of-a-distributed-twitter/</link>
		<comments>http://renaudbourassa.com/blog/2009/06/10/dhtwitter-a-vision-of-a-distributed-twitter/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 03:58:30 +0000</pubDate>
		<dc:creator>Rhino</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DHT]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://renaudbourassa.com/blog/?p=390</guid>
		<description><![CDATA[First of all, I have to say that this post is about an idea, not code. Now that this is said, here is the idea. As I said in a previous post, Twitter is facing a problem that could lead to its extinction. More and more people use third-party clients to access Twitter, thus decentralizing [...]]]></description>
			<content:encoded><![CDATA[<p>First of all, I have to say that this post is about an idea, not code. Now that this is said, here is the idea. As I said in a <a href="http://renaudbourassa.com/blog/2009/05/05/why-twitter-inc-will-fail/">previous post</a>, Twitter is facing a problem that could lead to its extinction. More and more people use third-party clients to access Twitter, thus decentralizing the system while keeping the load on the servers. Less people using the Twitter interface means less possibility of monetization and could ultimately lead to the company going bankrupt. The obvious solution to this problem would be to simply restrict the access to the service by limiting the API. However, since closing itself to the world is never a good thing to do, something else has to be done. This is were the idea of DHTwitter comes into play.</p>
<p><strong>The Classic Way</strong></p>
<p>First, lets look at Twitter as it is right now. Yes, Twitter is a social application and as such, each of the network&#8217;s nodes, each user, is connected to a certain number of other nodes. The apparent structure of the service is thus the one of a peer-to-peer network or a decentralized network. However, from a technology point of view, this is not the case. Twitter is a fully centralized network.</p>
<p style="text-align:center"><img class="aligncenter size-full wp-image-393" title="twitternetwork" src="http://renaudbourassa.com/blog/wp-content/uploads/2009/06/twitternetwork.jpg" alt="twitternetwork" width="491" height="332" /></p>
<p>To do whatever action you want to do, you have to go through the company&#8217;s servers. Every single request, whether it is through the Twitter public API or directly on the website, has to be processed by Twitter. All the clients do is parse the server&#8217;s response, all the hard work is done on Twitter&#8217;s side.</p>
<p style="text-align:center"><img class="alignnone size-full wp-image-394" title="twitterquery" src="http://renaudbourassa.com/blog/wp-content/uploads/2009/06/twitterquery.jpg" alt="twitterquery" width="529" height="97" /></p>
<p>Why is this bad? Because Twitter&#8217;s users check often for new messages since they post a lot of messages. Also, Twitter&#8217;s open API led to the creation of many applications based on the service, the worst for the company being clients and automated services. First, a lot of clients, to stay up to date, will make frequent requests to the servers to see if something new was posted. This wouldn&#8217;t be too bad, for example, with a blog service where people only post once in a while, because the servers could use a cache system to reduce unnecessary processing. However, with its thousand of new tweets per minute (and growing), a caching system is hardly useful for Twitter. The second problem is automated applications such as WordPress plugins or blog update services. These service also make a lot of requests, every time a blog page is loaded in the case of WordPress and at a certain rate for the update services. Again, each request sent by the service has to be processed on Twitter&#8217;s servers, thus requiring a lot of processing power without the user even seeing the little Twitter bird.</p>
<p><strong>The Efficient Way</strong></p>
<p>So how can we solve this problem? Well, since Twitter is, by its social nature, decentralized, why not try to decentralize the system? This is what peer-to-peer applications such as BitTorrent and Skype have been doing for a while, and it seems to work well. Starting with the second generation of peer-to-peer networks, decentralization became a key idea. This culminated with the integration of Distributed Hash Tables (DHT) in peer-to-peer protocols and clients. From <a href="http://en.wikipedia.org/wiki/Distributed_hash_table">Wikipedia</a>:</p>
<blockquote><p>Distributed hash tables (DHTs) are a class of decentralized distributed systems that provide a lookup service similar to a hash table: (key, value) pairs are stored in the DHT, and any participating node can efficiently retrieve the value associated with a given key. Responsibility for maintaining the mapping from keys to values is distributed among the nodes, in such a way that a change in the set of participants causes a minimal amount of disruption.</p></blockquote>
<p>So how does this apply to Twitter? Well, with its minimalist structure, Twitter is the perfect candidate for a DHT system. DHTs use key value pairs for data management and Twitter is just that, a key value system. The key is your username, and the value your tweets. What makes this an even better solution, is the simplicity of the service. Compared with Facebook activity or blog posts, tweets doesn&#8217;t include complex data such as images or text formatting. It is all about text, and small pieces of text. This not only makes storing user&#8217;s data easy, but it also requires less space. A simple XML file of an average size could be use to store a user&#8217;s full history of tweets and a list of all of his followers/following.</p>
<p>The idea of DHTwitter is to create an additional layer of abstraction, this time between the Twitter API and the client or application used by the end user. This API would include the <a href="http://en.wikipedia.org/wiki/Distributed_hash_table#Overlay_network">overlay network</a> and the <a href="http://en.wikipedia.org/wiki/Distributed_hash_table#Keyspace_partitioning">keyspace partitioning</a> specifications needed to establish the DHT. Once this is done, the API would redirect requests to the Peer Cloud to see if the information is available before hitting Twitter&#8217;s servers. If the user wants to publish a tweet, then all the API has to do is to publish it in the Peer Cloud as well as on Twitter&#8217;s servers to be accessible from everyone, even people not using DHTwitter. By sending the information part by part and by sending the latest tweets first, transfer speed would be less of a problem. Also, keeping a user&#8217;s friends close to him in the overlay network would make request processing in the Peer Cloud faster.</p>
<p style="text-align:center"><img class="alignnone size-full wp-image-392" title="dhtwitterquery" src="http://renaudbourassa.com/blog/wp-content/uploads/2009/06/dhtwitterquery.jpg" alt="dhtwitterquery" width="529" height="203" /></p>
<p>This would seriously reduce the load on Twitter&#8217;s server by distributing the lookup and parsing processing throughout the Peer Cloud. It would reduce the number of server hits by connecting the users together, in the same way they connect in the social layer.</p>
<p style="text-align:center"><img class="alignnone size-full wp-image-391" title="dhtwitternetwork" src="http://renaudbourassa.com/blog/wp-content/uploads/2009/06/dhtwitternetwork.jpg" alt="dhtwitternetwork" width="493" height="333" /></p>
<p><strong>Possible Implementation</strong></p>
<p>For now, this is only an idea. I am not planning on coding an implementation on my own in the near future. However, if someone is interested, please let me know, I would love to participate in the development. The biggest challenge in implementing DHTwitter is the lack of libraries for DHTs. Full system specifications exist; <a href="http://xlattice.sourceforge.net/components/protocol/kademlia/specs.html">Kademlia</a>, <a href="http://freepastry.org/">Pastry</a> and <a href="http://current.cs.ucsb.edu/projects/chimera/">Tapestry</a>(Chimera) are good examples. However, there is a lack of solid implementation. Librairies are practically nonexistent and most practical implementations are hard coded into existing applications, such as Vuze or LimeWire. Again, if you thought of a way this could be implemented, please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://renaudbourassa.com/blog/2009/06/10/dhtwitter-a-vision-of-a-distributed-twitter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Twitter Inc Will Fail</title>
		<link>http://renaudbourassa.com/blog/2009/05/05/why-twitter-inc-will-fail/</link>
		<comments>http://renaudbourassa.com/blog/2009/05/05/why-twitter-inc-will-fail/#comments</comments>
		<pubDate>Wed, 06 May 2009 03:13:52 +0000</pubDate>
		<dc:creator>Rhino</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://renaudbourassa.com/blog/?p=328</guid>
		<description><![CDATA[The latest rumor on the Twittersphere is about a possible buyout of Twitter by Apple for $700 million in cash. That is a lot of hype. Especially when we consider that even the owners of Twitter value the company to &#8220;only&#8221; $250 million. But can this holds? Following my article on Web 2.0, here is [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-335" title="twitter-logo1" src="http://renaudbourassa.com/blog/wp-content/uploads/2009/05/twitter-logo1.png" alt="twitter-logo1" width="128" height="128" />The latest rumor on the Twittersphere is about a <a href="http://www.techcrunch.com/2009/05/05/twitter-mania-google-got-shut-down-apple-rumors-heat-up/">possible buyout of Twitter by Apple</a> for $700 million in cash. That is a lot of hype. Especially when we consider that even the owners of Twitter value the company to &#8220;only&#8221; $250 million. But can this holds? Following my article on Web 2.0, here is my prediction for Twitter Inc.</p>
<p>First of all, I have to say that I love Twitter. I think it is a really useful tool for the rapid spread of what I would call bleeding edge knowledge. It is easy to find and spread the latest news in a variety of domains, mostly through links to interesting blog posts. My fears are for Twitter Inc, the corporation behind the service.</p>
<p>Lately, Twitter has been opening its API like no proprietary web service before. Back in September, when I started working with their different developer tools, the only option available to me was to use an API key to make requests using a limited sets of functions. Today, with the integration of OAuth to the API and the development of other useful tools, connecting to Twitter has never been easier. It got to the point where the user has dozens of alternative to the official website to connect with its fellow twitterers, some of which are way more advanced than the original web interface or target specific aspects of the Twittersphere. Based on <a href="http://twitstat.com/churn.html">recent statistics</a>, less than 75% of the users post their updates via the web client. The question is: is this a good thing?</p>
<p>From the point of view of the user, it is the best thing that could happen. Opening the API to developers worldwide means faster and better innovation. Twitter&#8217;s users are prosumers that don&#8217;t passively use the end product, but also develop it based on their needs. The peer pioneering behind Twitter lead to the creation of whole new services, like <a href="http://twitpic.com/">Twitpic</a>, that integrates seamlessly to the main service via the open API. This means more alternative for the end user and, as a result, a better experience.</p>
<p>The conclusion is the same from the service&#8217;s point of view. By opening itself to the world, Twitter gains new features and users everyday, making it more useful and purposeful. Clients like <a href="http://www.tweetdeck.com/beta/">Tweetdeck</a> and <a href="http://desktop.seesmic.com/">Seesmic Desktop</a> make it easy to reorganize and mash the data available on the Twittersphere, keeping only the parts that are relevant. You can easily find what is most discussed by visiting <a href="http://www.twitscoop.com/">Twitscoop</a> or automatically post with <a href="http://twitterfeed.com/">Twitterfeed</a>. It is these services that make the Twitter service more than a 140 characters blog.</p>
<p>The problem is with Twitter Inc. All these API requests have to be managed by some central system, a system that happens to be owned and operated by Twitter Inc. Every request has to go through one of Twitter&#8217;s server, creating operation and maintenance costs that they have to pay to stay online. They could have tried to payoff their bills with ads like other Web 2.0 companies, but not only do they don&#8217;t display ads, but they soon may not even display any content at all. As I said before, less than 75% of the users use the official web interface. That means that more than 25% of the users don&#8217;t even bother going on the Twitter website and this number is growing. By decentralizing a system that, in is nature, is centralized, Twitter Inc is facing the risk of becoming a simple content provider for more advanced clients or at least, to lose potential profits to someone else. Even worse is the fact that its problem, the widespread availability of the content, is also its strength. Even <a href="http://identi.ca">identi.ca</a>, a free and open source micro-blogging platform, seems to have a better business plan with its <a href="http://status.net/">status.net</a> initiative. So how can Twitter be worth $700 millions? Hype. But hype is not enough in the long run. With a loss of control over the distribution of its content, Twitter will have to find alternative way to start making money or it will become part of the past.</p>
<blockquote><p>We plan to build Twitter, Inc into a successful, revenue-generating company that attracts world-class talent with an inspiring culture and attitude towards doing business.</p>
<pre><a href="http://twitter.com/about">About Twitter</a></pre>
</blockquote>
<p>I hope for them that this is not just a dream.</p>
]]></content:encoded>
			<wfw:commentRss>http://renaudbourassa.com/blog/2009/05/05/why-twitter-inc-will-fail/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Third Overall at Yahoo! HACK U</title>
		<link>http://renaudbourassa.com/blog/2008/09/28/third-overall-at-yahoo-hack-u/</link>
		<comments>http://renaudbourassa.com/blog/2008/09/28/third-overall-at-yahoo-hack-u/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 05:11:39 +0000</pubDate>
		<dc:creator>Rhino</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[competition]]></category>
		<category><![CDATA[Globami]]></category>
		<category><![CDATA[Hack U]]></category>
		<category><![CDATA[SearchMonkey]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.rhinosphere.com/?p=3</guid>
		<description><![CDATA[Two weeks ago, strange posters with the title &#8220;Hey Haxor&#8221; and showing a fist in ASCII art started to appear all around the University of Waterloo engineering buildings. There was absolutely no other useful informations on them except a url: http://hacku.impact.org. When I got back home, I went on the website to figure out what [...]]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago, strange posters with the title &#8220;Hey Haxor&#8221; and showing a fist in ASCII art started to appear all around the University of Waterloo engineering buildings. There was absolutely no other useful informations on them except a url: http://hacku.impact.org. When I got back home, I went on the website to figure out what was that Haxor thing they were announcing. It ended up being the Yahoo! Hack U event, a univerisity version of the <a href="http://hackday.org/">Yahoo! Hack Day</a>. The rules are simple, you have 24 hours to create a web application that can impress the judges. Having nothing to lose, I registered and started to think about a hack for the competition. I looked through all the Yahoo! APIs, searching for something that could be fun to hack. After a week of conferences and 24 hours of coding last thursday/friday, I ended up creating <a href="http://globami.rhinosphere.com">Globami</a>, a social networking tool using the Yahoo! map API. The main goal of the website is to offer an alternative to the classic list view of your friends on social networks. With Globami, all your friends are displayed on a map based on their location in the world. By putting your mouse over someone&#8217;s marker, you get all sorts of informations on him depending on the social network you chose. You can then change the map view to his friend network by clicking on him. I first chose to integrate <a href="http://twitter.com">Twitter</a> and then wrote the code for <a href="http://www.flickr.com">Flickr</a> as well since there was some time left. I also did a small <a href="http://developer.yahoo.com/searchmonkey/">SearchMonkey</a> application to show the Globami map of Twitter&#8217;s users in Yahoo! search results.</p>
<p>At the end of the competition, the Yahoo! team ended up with 24 projects to judge. Each team had to present his project in less than five minutes. After 2 hours of presentations and 20 minutes of deliberation between the judges came the announcement of the winners. This is where I learned that Globami finished third overall. Not bad for a first year student.</p>
<p>Thanks to the Yahoo! team, especially to Rasmus and Paul, for this great week.</p>
]]></content:encoded>
			<wfw:commentRss>http://renaudbourassa.com/blog/2008/09/28/third-overall-at-yahoo-hack-u/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

