<?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"
	>

<channel>
	<title>Comet Daily</title>
	<atom:link href="http://cometdaily.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://cometdaily.com</link>
	<description>Information about Comet techniques.</description>
	<pubDate>Wed, 23 Dec 2009 04:53:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Comet in Newspapers: The Spanish Lottery Experiment</title>
		<link>http://cometdaily.com/2009/12/22/comet-in-newspapers/</link>
		<comments>http://cometdaily.com/2009/12/22/comet-in-newspapers/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 04:53:21 +0000</pubDate>
		<dc:creator>Jose Maria Arranz</dc:creator>
		
		<category><![CDATA[articles]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[Comet]]></category>

		<category><![CDATA[long polling]]></category>

		<category><![CDATA[newspaper]]></category>

		<category><![CDATA[polling]]></category>

		<category><![CDATA[Spanish Christmas Lottery]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=441</guid>
		<description><![CDATA[On December 22nd, the popular Spanish Christmas Lottery took place.   This lottery is arranged by the Spanish Government and has a very long tradition in Spain, especially at Christmas when the rewards are the greatest. ]]></description>
			<content:encoded><![CDATA[<p>On December 22nd, the popular <a href="http://en.wikipedia.org/wiki/Spanish_Christmas_Lottery">Spanish Christmas Lottery</a> took place.   This lottery is arranged by the Spanish Government and has a very long tradition in Spain, especially at Christmas when the rewards are the greatest. </p>
<h3>The Spanish Lottery</h3>
<p>The best prize is big, but the probability to win this reward, &#8220;el Gordo&#8221; (&#8221;the biggest&#8221;), is disappointing, 1/165.750.000, if you just buy one ticket (&#8221;décimo&#8221;) for 20 euros (around $28 USD).</p>
<p>While I would prefer to waste this money in a casino game where the probability to win is not so low, it is very difficult to escape from this well established and popular tradition (beyond gambling).</p>
<p>The raffle is itself a show because nobody knows when the number with &#8220;el gordo&#8221; is going to be chosen from a hopper containing all of numbers because concurrently another hopper contains the prizes (containing the big ones and many small prizes).  Because many more numbers are taken out randomly with minor prizes, the show takes several hours.</p>
<p>An introduction to the Spanish gambling culture is not the objective of this article, the subject is of course Comet. </p>
<p>Several million people follow this Christmas special event over the radio, television and of course the Internet, especially online newspapers. Are these newspapers using a Comet technique to notify users in real-time when the best prizes are known? </p>
<h3>The Experiment</h3>
<p>I have watched the most important Spanish online newspapers (<a href="http://www.elpais.com">elpais.com</a>, <a href="http://www.elmundo.es">elmundo.es</a>, <a href="http://www.abc.es">abc.es</a>, <a href="http://www.20minutos.es">20minutos.es</a>, <a href="http://www.elperiodico.com">elperiodico.com</a>, <a href="http://www.cadenaser.com">cadenaser.com</a>) to check if the number with &#8220;el Gordo&#8221; is shown in real-time (listening to the radio is an effective way to know when this occurs). When it comes to technology, Spanish online newspapers are very advanced and have no reason to envy any other international newspaper.</p>
<p>In spite of this, the answer to the question is&#8230; NO!! </p>
<p>No newspaper was using any kind of Comet technology or even simple Ajax polling.  They all are using a typical full page reload using a timer or a refresh meta tag, typically with an interval of 10 – 15 minutes. This interval is too large and is definitively not real-time in this case. </p>
<p>When &#8220;el Gordo&#8221; was removed from the hopper, people listening to the radio, usually at work (yes, listening to the radio is usually tolerated this day), compulsively reloaded their preferred online newspaper to check the exact number, because this number, obviously, was not shown in their outdated web page. Consequence: some of these newspaper web sites were stalled for a while.</p>
<p><strong>Can Comet help the Spanish Gambling Culture?</strong></p>
<p>Do not take this question too seriously. This &#8220;experiment&#8221; is an excuse, based on a concrete and real example, to speculate about how Comet technologies can be introduced to online newspapers or similar web sites with expected, but unpredictable, spikes in traffic.</p>
<h3>Comet in Online Newspapers</h3>
<p>People like to keep open the main page of their preferred online newspaper to check any change. The main page of an online newspaper is usually (ever?) updated using a simple full page refresh with a JavaScript timer or a refresh meta tag directive.</p>
<p>Full reload of the newspaper&#8217;s main page is especially ugly for users and expensive for the server because it contains a substantial amounts of information. Reloading completely takes time, bandwidth and server resources to rebuild the web page because usually newspapers make use of template processors and sometimes querying databases, as with any typical web application. </p>
<p>Online newspapers are designed for the desktop using JavaScript and large screens. Usually there are alternative mobile versions, but most of them do not use JavaScript. </p>
<p>Excluding from this analysis mobile based versions, newspapers make some use of JavaScript and DHTML because web site designers know that virtually 100% of visitors are using modern browsers like Internet Explorer 6+, or those derived from Gecko (FireFox, Mozilla, Camino…) or WebKit (Safari, Chrome). All of these browsers of course have support for Ajax.</p>
<p>We know there are several non-Ajax techniques for Comet, like the forever page, <a href="http://cometdaily.com/2007/11/05/the-forever-frame-technique/">forever frame</a> or script tag long-polling. These techniques are not as clean as Ajax-based alternatives, so I will limit this analysis to Ajax polling and <a href="http://cometdaily.com/2007/11/15/the-long-polling-technique/">long-polling</a> techniques for this article.</p>
<p>Ajax polling and long-polling can improve the real-time experience of online newspaper readers without excluding users for technological reasons (users with very old browsers are in fact already excluded). </p>
<p>Before trying to add Comet to the news publishing world, one limitation is very important to take into consideration: because most online newspapers are free for users and financed by advertisements, we cannot expense much server power and memory per user because this revenue model only scales with million of readers with a very small cost per user. Web applications for online newspapers are basically stateless. Bandwidth is not a problem because any Comet technique used is a bandwidth saver and usually Comet is a power saver too, but this cannot be said for memory consumption with Comet connection usage.</p>
<p>Comet (Ajax polling or long polling) could be used on two levels:</p>
<ol>
<li>To provide an almost real-time updating service of something specific</li>
<li>As a replacement of the old-fashioned full page reload technique</li>
</ol>
<h3>Specific Real-Time Services Based on Comet</h3>
<p>The Spanish Christmas Lottery is a very good example of a specific service that could be done with Comet. This event is short in duration and occurs over a reasonably small time frame, so it is worth the effort to spend a bit more server power (it depends on the Comet technique used and the update interval). </p>
<p>For instance, using Ajax polling with an interval of one minute or less, the server can send to the client new reward numbers in almost real-time. The return of most of Ajax requests will be empty (almost no server power and bandwidth used) and will help to avoid the issue of compulsive user reload. What is more expensive: X requests with empty responses, or one request with a useless full page reload? It depends on X and how much a full page reload costs.</p>
<p>Long polling can be more bandwidth effective and can offer the user instant notification, but the server cost can increase because it needs more server resources (connections and memory).</p>
<p>Other similar use cases are notification events of breaking news or during sports games.</p>
<h4>The ItsNat Approach</h4>
<p>Using <a href="http://cometdaily.com/2008/10/07/server-centric-comet-with-itsnat/">ItsNat</a>, this can be easily achieved using an <a href=" http://www.innowhere.com:8080/itsnat/feashow_servlet?itsnat_doc_name=feashow.main&#038;feature=feashow.core.listeners.timers.ex">Ajax timer</a> (polling). </p>
<p>On the server, because the dynamic zone is small, most of the server DOM will be declared as static, cached as text (DOM serialized as markup) and shared between all users reducing to the minimum the server memory used per user (client page). ItsNat caching is very important because the memory used by a user must be very small to keep the business need of low small cost per user.</p>
<p>Another alternative is having a fully-static server-side DOM (hence fully cached and shared between users) and dynamic changes served from server as JavaScript code (calling ItsNatDocument.addCodeToSend(String)) to the client to render the dynamic zone usually with the help of a JavaScript framework. In spite of ItsNat, this case is a client-centric solution and ItsNat can be replaced with another technology on the server and toolkits like Dojo can provide Ajax polling.</p>
<h3>Replacing the Full Page Reload Technique with Comet</h3>
<p>This problem is, by far, more complex.</p>
<p>With Comet, the web page would change partially and only if necessary, avoiding full reloads, reducing server power and bandwidth. However, adding Comet may be analyzed with care because in this context one important piece of this puzzle is server memory. The web application of a newspaper is basically stateless, there is not very much personalization and all users usually see the same content. Adding too much state to the server can increment the server costs (as said before in a service financed with ads), that is to say the web application must remain mainly stateless.</p>
<p><strong>Investigating strategies:</strong></p>
<p>A) Client-centric Approach:</p>
<p>In this kind of problem a JavaScript framework with Comet capabilities like <a href="http://dojotoolkit.org/">Dojo</a> seems to shine because &#8220;the application&#8221; is brought to the client and only the strictly necessary user data lives in the server because the client is responsible to keep track of visual rendering and state. For instance the server can instruct the client using Comet (polling or long polling) to render new news, to change the ads showed and so on. </p>
<p>But in this case, what is the application? The main page of a newspaper is an interesting example of a highly flexible web application where data and visual appearance are changing frequently. Sometimes these changes are unpredictable when something very important occurs. </p>
<p>Partially updating this kind of page in an unpredictable &#8220;application&#8221; is hard to drive and code using JavaScript, because the client code may be outdated, and new code should be injected replacing the old code (the client needs to be &#8220;reprogrammed&#8221;). </p>
<p>Maybe the most effective action in this case is to notify the client for a full page reload (for instance sending a window.location.reload(true)). So the promise of no full reload is not fulfilled in all cases.</p>
<p>B) Server-centric Approach:</p>
<p>Usually Ajax based server-centric frameworks keep track of the visual state in the server, any change in data model is rendered and the client is updated accordingly. If any part of the web page can change, the page is fully dynamic and must be fully saved in the server. This visual state can use too much memory (maybe valid in any typical web application but not for a newspaper). ItsNat is no different because it uses DOM to save this state in server and in theory any part of the page can change (no caching). </p>
<p>Another problem: if any part of the web page can change, how do you modify the visual state within the server memory <em>programmatically</em> without discarding the current state? In theory ItsNat can fully change the page in server and in client with no reload, so an interesting approach would be to change the original file template and automatically update the DOM tree of the live page with changes. This is an interesting approach to investigate. </p>
<p>The easier solution in ItsNat is to update the file template in server accordingly, notify the server of this change and with a long-polling event, or when the client queries the server to detect any new change (Ajax polling), the server will send a window.location.reload(true) JavaScript instruction or similar to fully update the page. In this case the visual state in the server is almost useless because the page is fully reloaded when something important changes, and the partial update requisite is not fulfilled. So again the promise of no full page reload is not fulfilled. </p>
<h3>Conclusion</h3>
<p>A newspaper is not a typical predictable and fixed web application. Comet (Ajax polling or long-polling) can be used to partially update some concrete and predictable parts of the web page with client or server-centric strategies, and the cost per user may be acceptable. </p>
<p>If the visual structure of the page randomly changes the most effective strategy is a full reload because the &#8220;application&#8221; has changed and the visual state saved in server and in client is no longer valid and is very hard to update partially. In this case Comet (polling and maybe long-polling) can be used to detect when the page must be fully reloaded, saving significant bandwidth and server power, but the promise of partial rendering of any part of the page is not fulfilled, so typical Ajax approaches, both client and server-centric may be too inflexible and/or consume too much memory.</p>
<p>This article speculates about how to introduce Comet in the main page of online newspapers, this problem is relatively new and open to ideas and experiences. </p>
<p>What do you think?<br />
What kind of strategy would you choose?</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F&amp;title=Comet+in+Newspapers%3A+The+Spanish+Lottery+Experiment" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F&amp;title=Comet+in+Newspapers%3A+The+Spanish+Lottery+Experiment" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F&amp;title=Comet+in+Newspapers%3A+The+Spanish+Lottery+Experiment" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F&amp;title=Comet+in+Newspapers%3A+The+Spanish+Lottery+Experiment" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F&amp;title=Comet+in+Newspapers%3A+The+Spanish+Lottery+Experiment', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F&amp;title=Comet+in+Newspapers%3A+The+Spanish+Lottery+Experiment" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F22%2Fcomet-in-newspapers%2F&amp;title=Comet+in+Newspapers%3A+The+Spanish+Lottery+Experiment" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/12/22/comet-in-newspapers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Comet to Follow Server Threads Progression</title>
		<link>http://cometdaily.com/2009/12/21/comet-to-follow-server-threads-progression/</link>
		<comments>http://cometdaily.com/2009/12/21/comet-to-follow-server-threads-progression/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 07:48:50 +0000</pubDate>
		<dc:creator>Jose Maria Arranz</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Comet]]></category>

		<category><![CDATA[CometNotifier]]></category>

		<category><![CDATA[ItsNat]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[threads]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=474</guid>
		<description><![CDATA[Joseph McCarthy from IBM Ireland has written a tutorial, "Using Comet for asynchronous user notification of autonomous server thread progression", about how to use polling and Comet (long-polling) in Java.]]></description>
			<content:encoded><![CDATA[<p>Joseph McCarthy from IBM Ireland has written a tutorial, <a href="http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Using_Comet_for_asynchronous_user_notification_of_autonomous_server_thread_progression">&#8220;Using Comet for asynchronous user notification of autonomous server thread progression&#8221;</a> about how to use polling and Comet (long-polling) in Java with the <a href="http://www.itsnat.org">ItsNat</a> Java web framework to asynchronously notify end users through web the progression of an autonomous thread (not a web thread) executing a long task in parallel. This article is &#8220;inspired&#8221; on <a href="http://cometdaily.com/2009/03/25/itsnat-v06-released-comet-long-polling-now-event-based/">this musing</a> published here at Comet Daily and <a href="http://www.innowhere.com:8080/itsnat/feashow_servlet?itsnat_doc_name=feashow.main&#038;feature=feashow.core.listeners.cometNotifier.ex">this complete</a> example.</p>
<p>The problem selected is to calculate the PI number through <a href="http://en.wikipedia.org/wiki/Leibniz_formula_for_pi">Gregory-Leibniz</a> series. This calculation takes significant time if you want high precision.</p>
<p>The objective of the article is monitoring via the web this server thread with no user interaction, periodically obtaining the estimated value and of course asynchronously notifying to the end user when the calculation has finished. As a bonus, the user can start and stop the server thread through web buttons.</p>
<p>The article has two parts/approaches:</p>
<p>1) In the first part the &#8220;polling&#8221; technique is used (through the use of a meta refresh directive) alongside Ajax to query the thread state, conventional page navigation technology to start and stop the thread and global variables to hold the thread and calculation states. No specific web framework is used (just servlets and JSPs).</p>
<p>2) The second part uses Comet (long-polling) provided by the <a href="http://www.itsnat.org">ItsNat</a> framework. In this case the application is a <a href="http://www.uxmatters.com/mt/archives/2006/11/improving-user-workflows-with-single-page-user-interfaces.php">single page interface</a> and the thread is only attached to the user&#8217;s page. In this case a CometNotifier object provided by ItsNat is &#8220;attached&#8221; to the web page and to the calculator thread.</p>
<p>Note: the original article has an annoying visual problem, to read it I recommend using MSIE 6 (yes in this case a non-W3C CSS compliant browser is great) or Firefox disabling styles (View/Page Style/No Style).</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F&amp;title=Comet+to+Follow+Server+Threads+Progression" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F&amp;title=Comet+to+Follow+Server+Threads+Progression" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F&amp;title=Comet+to+Follow+Server+Threads+Progression" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F&amp;title=Comet+to+Follow+Server+Threads+Progression" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F&amp;title=Comet+to+Follow+Server+Threads+Progression', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F&amp;title=Comet+to+Follow+Server+Threads+Progression" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fcomet-to-follow-server-threads-progression%2F&amp;title=Comet+to+Follow+Server+Threads+Progression" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/12/21/comet-to-follow-server-threads-progression/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jetty WebSocket Server</title>
		<link>http://cometdaily.com/2009/12/21/jetty-websocket-server/</link>
		<comments>http://cometdaily.com/2009/12/21/jetty-websocket-server/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 07:04:51 +0000</pubDate>
		<dc:creator>GregWilkins</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Comet]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[jetty]]></category>

		<category><![CDATA[servlet]]></category>

		<category><![CDATA[websocket]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=475</guid>
		<description><![CDATA[Jetty's async IO architecture is ideally suited to providing a very scalable implementation of WebSocket that is well integrated with standard server-side java application environments.]]></description>
			<content:encoded><![CDATA[<p>WebSocket is an API and a Protocol that have come from the <a href="http://www.whatwg.org/">Whatwg</a> for the purposes of improving Comet support in the browser and on the network.  The API is now being <a href="http://dev.w3.org/html5/websockets/">standardized by the W3C</a> and the IETF is considering creating a <a href="http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol">WebSocket working group</a> to standardize the protocol.</p>
<p>I&#8217;m not a big fan of the WebSocket protocol, as evidenced by my <a href="http://blogs.webtide.com/gregw/entry/how_to_improve_websocket">blog on how to improve WebSocket</a>, <a href="http://bwtp.wikidot.com/main:rational">the BWTP proposal</a> and/or <a href="http://www.ietf.org/mail-archive/web/hybi/current/maillist.html">the IETF Hybi mailing list</a>.  But Chrome and Firefox will soon be supporting WebSocket, so WebSocket (for better or for worse) will soon be available in the wild.</p>
<p>So if you can&#8217;t beat them, join them.  Having failed to convince others to create a better protocol, I&#8217;m now determined for <a href="http://eclipse.org/jetty">Jetty</a> to provide the best implementation of the protocol and to become the server of choice for WebSocket Comet development, deployment ( and experimenting with improving the protocol).</p>
<p>Jetty&#8217;s async IO architecture is ideally suited to providing a very scalable implementation of WebSocket that is well integrated with standard server-side java application environments.   Thus Jetty-7.0.1 now includes a <a href="http://wiki.eclipse.org/Jetty/Feature#WebSocket">WebSocket server</a>. Feedback welcome!</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F&amp;title=Jetty+WebSocket+Server" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F&amp;title=Jetty+WebSocket+Server" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F&amp;title=Jetty+WebSocket+Server" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F&amp;title=Jetty+WebSocket+Server" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F&amp;title=Jetty+WebSocket+Server', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F&amp;title=Jetty+WebSocket+Server" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F21%2Fjetty-websocket-server%2F&amp;title=Jetty+WebSocket+Server" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/12/21/jetty-websocket-server/feed/</wfw:commentRss>
		</item>
		<item>
		<title>cometD 1.0.1 Released</title>
		<link>http://cometdaily.com/2009/12/18/cometd-101-released/</link>
		<comments>http://cometdaily.com/2009/12/18/cometd-101-released/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 16:58:34 +0000</pubDate>
		<dc:creator>DylanSchiemann</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[cometd]]></category>

		<category><![CDATA[dojo]]></category>

		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=479</guid>
		<description><![CDATA[cometD 1.0 was recently released with a great set of features, and includes Comet clients for Dojo and jQuery.]]></description>
			<content:encoded><![CDATA[<p>The cometD project recently reached the 1.0 milestone!</p>
<blockquote><p>
The CometD project ships the following libraries to develop comet web applications:</p>
<p>    * A JavaScript library, with bindings for the well known Dojo and jQuery toolkits<br />
    * A Java client library, to be used, for example, in rich Java clients such as Swing applications<br />
    * A Java server library, to be used to implement the logic behind you application
</p></blockquote>
<p>The Bayeux protocol is considered complete as well.  The Python and Perl versions of the cometD server are not yet production quality, and the project is seeking contributors to help get those servers improved.</p>
<p>Maven users will enjoy the simplicity of getting up and running:</p>

<div class="wp_syntax"><div class="code"><pre class="bash">$ mvn archetype:generate -<span style="color: #007800;">DarchetypeCatalog=</span>http:<span style="color: #000000; font-weight: bold;">//</span>cometd.org
...
$ mvn <span style="color: #c20cb9; font-weight: bold;">install</span> jetty:run</pre></div></div>

<p>The <a href="http://blogs.webtide.com/sbordet/entry/cometd_1_0_released">cometD 1.0 announcement blog</a> has more details, and there&#8217;s also a lengthy article on <a href="http://blogs.webtide.com/gregw/entry/cometd_features_and_extensions">cometD features and extensions</a>.</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F&amp;title=cometD+1.0.1+Released" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F&amp;title=cometD+1.0.1+Released" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F&amp;title=cometD+1.0.1+Released" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F&amp;title=cometD+1.0.1+Released" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F&amp;title=cometD+1.0.1+Released', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F&amp;title=cometD+1.0.1+Released" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F18%2Fcometd-101-released%2F&amp;title=cometD+1.0.1+Released" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/12/18/cometd-101-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>APE (Ajax Push Engine) 1.0</title>
		<link>http://cometdaily.com/2009/12/12/ape-ajax-push-engine-10/</link>
		<comments>http://cometdaily.com/2009/12/12/ape-ajax-push-engine-10/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 03:13:08 +0000</pubDate>
		<dc:creator>DylanSchiemann</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[ape]]></category>

		<category><![CDATA[weeyla]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=478</guid>
		<description><![CDATA[Weeyla has released version 1.0 of APE (Ajax Push Engine), an open-source Comet server.]]></description>
			<content:encoded><![CDATA[<p>Weeyla has released <a href="http://www.ape-project.org/">version 1.0 of APE</a> (Ajax Push Engine), an open-source Comet server.  APE is available under a GPL license and was developed in C.</p>
<p>The project includes a server and a JavaScript framework that is a derivative of MooTools (though it of course works with Dojo, jQuery, and other JavaScript toolkits).  APE uses a pub/sub model with its own protocol, and states that it currently scales to more than 100,000 concurrent users.  It has some similarities to Orbited in its approach of many other protocols and TCPSockets.</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F&amp;title=APE+%28Ajax+Push+Engine%29+1.0" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F&amp;title=APE+%28Ajax+Push+Engine%29+1.0" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F&amp;title=APE+%28Ajax+Push+Engine%29+1.0" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F&amp;title=APE+%28Ajax+Push+Engine%29+1.0" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F&amp;title=APE+%28Ajax+Push+Engine%29+1.0', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F&amp;title=APE+%28Ajax+Push+Engine%29+1.0" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F12%2Fape-ajax-push-engine-10%2F&amp;title=APE+%28Ajax+Push+Engine%29+1.0" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/12/12/ape-ajax-push-engine-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mibbit Adding WebSocket Support</title>
		<link>http://cometdaily.com/2009/12/11/mibbit-adding-websocket-support/</link>
		<comments>http://cometdaily.com/2009/12/11/mibbit-adding-websocket-support/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 17:28:21 +0000</pubDate>
		<dc:creator>DylanSchiemann</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[mibbit]]></category>

		<category><![CDATA[websocket]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=477</guid>
		<description><![CDATA[Mibbit recently conducted some WebSocket performance tests with promising results.]]></description>
			<content:encoded><![CDATA[<p>Mibbit is <a href="http://axod.blogspot.com/2009/12/websocket-some-numbers.html">enabling support for WebSocket after running some promising initial tests</a>.  Mibbit is being aggressive in adding WebSocket support as they have a much higher than normal percentage of Google Chrome users, which now implements WebSocket.</p>
<p>Probably the most interesting point from the performance tests was the conclusion that WebSocket does not yet address compression which can impact overall bandwidth sent across the wire, leading HTML5 lead Hixie to comment that if people want compression, it will be added to the next version as an option.</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F&amp;title=Mibbit+Adding+WebSocket+Support" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F&amp;title=Mibbit+Adding+WebSocket+Support" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F&amp;title=Mibbit+Adding+WebSocket+Support" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F&amp;title=Mibbit+Adding+WebSocket+Support" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F&amp;title=Mibbit+Adding+WebSocket+Support', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F&amp;title=Mibbit+Adding+WebSocket+Support" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F11%2Fmibbit-adding-websocket-support%2F&amp;title=Mibbit+Adding+WebSocket+Support" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/12/11/mibbit-adding-websocket-support/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WebSocket Now Available in Chrome and cometD-Jetty</title>
		<link>http://cometdaily.com/2009/12/10/websocket-now-available-in-chrome-and-cometd-jetty/</link>
		<comments>http://cometdaily.com/2009/12/10/websocket-now-available-in-chrome-and-cometd-jetty/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 08:07:36 +0000</pubDate>
		<dc:creator>DylanSchiemann</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Chrome]]></category>

		<category><![CDATA[jetty]]></category>

		<category><![CDATA[websocket]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=476</guid>
		<description><![CDATA[WebSocket continues to gain momentum with support in development builds of Chrome and Jetty.]]></description>
			<content:encoded><![CDATA[<p>The developer channel version of Chrome has just landed support for WebSockets!</p>
<blockquote><p>Starting in the Google Chrome developer channel release 4.0.249.0, Web Sockets are available and enabled by default. Web Sockets are &#8220;TCP for the Web,&#8221; a next-generation bidirectional communication technology for web applications being standardized in part of Web Applications 1.0. We&#8217;ve implemented this feature as described in our design docs for WebKit and Chromium.</p></blockquote>
<p>Also, Greg Wilkins recently announced that <a href="http://blogs.webtide.com/gregw/entry/jetty_websocket_server">Jetty now supports WebSocket</a>.</p>
<blockquote><p>Jetty-7.0.1 has been extended with a WebSocket server implementation based on the same scalable asynchronous IO infrastructure of Jetty and integrated into the Jetty Servlet container.</p>
<p>WebSocket came out of work on HTML5 by the  What Working Group to specify a mechanism to allow two way communications to a browsers.  It is currently being standardized at the W3C for the WebSocket API and by the IETF for the WebSocket protocol  and is soon to be supported by releases of Firefox, and Chromium. While I have significant concerns about the websockets protocol, it is important that server concerns are considered in the standardization process. Thus to follow the IETF model of &#8220;rough consensus and working code&#8221;, it is important that Jetty has a working implementation of the protocol.</p></blockquote>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F&amp;title=WebSocket+Now+Available+in+Chrome+and+cometD-Jetty" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F&amp;title=WebSocket+Now+Available+in+Chrome+and+cometD-Jetty" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F&amp;title=WebSocket+Now+Available+in+Chrome+and+cometD-Jetty" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F&amp;title=WebSocket+Now+Available+in+Chrome+and+cometD-Jetty" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F&amp;title=WebSocket+Now+Available+in+Chrome+and+cometD-Jetty', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F&amp;title=WebSocket+Now+Available+in+Chrome+and+cometD-Jetty" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F12%2F10%2Fwebsocket-now-available-in-chrome-and-cometd-jetty%2F&amp;title=WebSocket+Now+Available+in+Chrome+and+cometD-Jetty" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/12/10/websocket-now-available-in-chrome-and-cometd-jetty/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Comet Support for IIS</title>
		<link>http://cometdaily.com/2009/11/14/comet-support-for-iis/</link>
		<comments>http://cometdaily.com/2009/11/14/comet-support-for-iis/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:42:11 +0000</pubDate>
		<dc:creator>DylanSchiemann</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[bayeux]]></category>

		<category><![CDATA[dojo]]></category>

		<category><![CDATA[iis]]></category>

		<category><![CDATA[websync]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=473</guid>
		<description><![CDATA[WebSync is a new Comet implementation for IIS.]]></description>
			<content:encoded><![CDATA[<p>Frozen Mountain recently announced <a href="http://www.frozenmountain.com/websync">WebSync</a>, a Comet solution for IIS.</p>
<blockquote><p>WebSync is a full-blown comet server built for the Microsoft stack (IIS/MSSQL/.NET) written in 100% managed C#. Use it to instantly transform your website into a real-time, comet-enabled communications platform. </p></blockquote>
<p>Jerod Venema recently wrote a guest post for Ajaxian, <a href="http://ajaxian.com/archives/websync-comet-for-iis">WebSync: Comet for IIS</a>, explaining in detail about their approach.</p>
<p>One section in particular was of interest to me, their use of Bayeux, but not Dojo:</p>
<blockquote><p>Once we were satisfied with the server’s performance, we set our sights on a JavaScript client. We had originally been using the Dojo Toolkit, but the overhead was more than what we wanted (it rang in at about 90k after compression, but before gzipping), so we wrote our own library that, when compressed and gzipped, comes across the wire at about 8k total (just over 15k before gzipping). We also ran into a slew of cross-browser issues (of course), in particular when dealing with long-lived HTTP connections. A bit of effort, though, and we can now claim the client to be fully compatible with over a dozen browsers, from IE5.5 all the way to the iPhone and Android browsers. Being fans of open-source technology (even in a Microsoft world), we decided to use the Bayeux transport protocol rather than develop our own, so any Bayeux-compliant client can link in to the server.</p></blockquote>
<p>I take objection to their Dojo size, as they could have stripped their use of Dojo down to about 8K total as well by stripping out unneeded features.</p>
<p>Since they are supporting Bayeux, then any Bayeux-compliant client such as the one found in Dojo will work with their server.  If you are using Dojo and IIS, and are interested in Comet, you should consider WebSync.</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F&amp;title=Comet+Support+for+IIS" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F&amp;title=Comet+Support+for+IIS" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F&amp;title=Comet+Support+for+IIS" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F&amp;title=Comet+Support+for+IIS" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F&amp;title=Comet+Support+for+IIS', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F&amp;title=Comet+Support+for+IIS" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fcomet-support-for-iis%2F&amp;title=Comet+Support+for+IIS" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/11/14/comet-support-for-iis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Approaches to Streaming</title>
		<link>http://cometdaily.com/2009/11/14/approaches-to-streaming/</link>
		<comments>http://cometdaily.com/2009/11/14/approaches-to-streaming/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:32:08 +0000</pubDate>
		<dc:creator>Martin Tyler</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[caplin]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=472</guid>
		<description><![CDATA[A two-part article on streaming based on the approaches taken at Caplin.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve posted a two part blog on <a href="http://blog.caplin.com">Caplin&#8217;s blog</a> which relates somewhat to Comet.</p>
<p>Firstly, <a href="http://blog.caplin.com/2009/10/20/approaches-to-streaming/">Sockets, Messages and the Pub Sub Paradigm: Approaches to Streaming</a> which covers the various styles and techniques that people have implemented Comet based products. I have just followed that up with <a href="http://blog.caplin.com/2009/11/13/domain-driven-design-approaches-to-streaming/">Domain Driven Design: Approaches to Streaming</a> where I talk about a higher level approach which is appropriate when targeting a specific market, as we do at <a href="http://www.caplin.com">Caplin</a>.</p>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F&amp;title=Approaches+to+Streaming" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F&amp;title=Approaches+to+Streaming" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F&amp;title=Approaches+to+Streaming" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F&amp;title=Approaches+to+Streaming" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F&amp;title=Approaches+to+Streaming', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F&amp;title=Approaches+to+Streaming" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F11%2F14%2Fapproaches-to-streaming%2F&amp;title=Approaches+to+Streaming" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/11/14/approaches-to-streaming/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Concrete Comet Examples</title>
		<link>http://cometdaily.com/2009/10/23/concrete-comet-examples/</link>
		<comments>http://cometdaily.com/2009/10/23/concrete-comet-examples/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 17:56:44 +0000</pubDate>
		<dc:creator>Alessandro Alinone</dc:creator>
		
		<category><![CDATA[articles]]></category>

		<category><![CDATA[chat]]></category>

		<category><![CDATA[demo]]></category>

		<category><![CDATA[examples]]></category>

		<category><![CDATA[gallery]]></category>

		<category><![CDATA[google wave]]></category>

		<category><![CDATA[Lightstreamer]]></category>

		<category><![CDATA[monitor]]></category>

		<category><![CDATA[trading]]></category>

		<guid isPermaLink="false">http://cometdaily.com/?p=469</guid>
		<description><![CDATA[When writing about Comet technologies, sometimes we tend to be a bit abstract and theoretical. In this case, I would like to focus on concrete working examples.]]></description>
			<content:encoded><![CDATA[<p>When writing about Comet technologies, sometimes we tend to be a bit abstract and theoretical. In this case, I would like to focus on concrete working examples. So concrete that they actually run inside this very article&#8230;</p>
<h2>Stock Prices</h2>
<p><iframe src ="http://www.lightstreamer.com/share/EmbeddableDemos/StockListDemo_Basic_Embed/" width="302px" height="135px" frameborder="0" scrolling="no" style="float:left; margin-top:3px; margin-right:10px; margin-bottom:3px">
<p>Your browser does not support iframes.</p>
<p></iframe>Solutions for the <a href="http://en.wikipedia.org/wiki/Online_trading">online trading</a> of securities were the first to adopt Push Technology and the Comet paradigm. In my case, it was actually the requirements of online trading systems that drove the technology. Back in 2000, when I started designing and prototyping Lightstreamer, I had had strong inputs from banks that wanted to get rid of Java applets. At that time, real-time market data (stock quotes and news) was delivered through the Internet to thick desktop applications or to Java applets running inside the browser. The trend of moving from desktop to browser-based applications was already massive and, at the same time, the decline of Java applets had begun (for some well known reasons, including: incompatible runtimes, start-up slowness, expensive maintenance, layout mismatch, etc.).</p>
<p>Nine years ago, the only ready-made solutions for pushing data to a browser without using applets or plug-ins were <a href="http://www.pushlets.com/">Pushlets</a> (open source) and <a href="http://www.lightstreamer.com">Lightstreamer </a>(commercial). Starting from 2006, when the term &#8220;Comet&#8221; was coined, many more players, both open source and commercial, has come into the arena, making modern Push Technology more and more visible and recognized in the mainstream.</p>
<p>Banks and financial institutions are still the most demanding Comet-technology consumers. Their requirement of pushing real-time market data to the browser is still there, with additional requirements of low latency, high scalability, bandwidth throttling, and the support of multiple client-side technologies, including Ajax, Flex, Silverlight, and iPhone.</p>
<p>In recent years, many online gaming companies, especially in the UK, have found a great technological ally in Comet. <a href="http://en.wikipedia.org/wiki/Spread_betting">Spread betting</a> in particular, which is often on the boundary between finance and gaming, shares the same requirements of more traditional online trading applications. Many other types of games and auctions are progressively adopting Comet technologies.</p>
<p>The live example above is based on the most typical Lightstreamer demo. You can check out the <a href="http://www.lightstreamer.com/demos.htm#StockListDemo_Basic">full source code and explanation</a>.</p>
<h2>Chat</h2>
<p><iframe src ="http://www.lightstreamer.com/share/EmbeddableDemos/ChatDemo_Embed/" width="302px" height="212px" frameborder="0" scrolling="no" style="float:left; margin-top:3px; margin-right:10px; margin-bottom:3px">
<p>Your browser does not support iframes.</p>
<p></iframe> To the left you can see a basic, fully-functional chat application. It is implemented in pure HTML and JavaScript and is able to deliver each message with zero latency (that is, no round trip to retrieve a new message, thanks to streaming or long-polling, depending on the environment).</p>
<p>Chat applications have often been considered the &#8220;Hello World&#8221; of Comet (even if in the past I preferred to publish an <a href="http://cometdaily.com/2008/02/12/%E2%80%9Chello-world%E2%80%9D-with-lightstreamer/">actual &#8220;Hello World&#8221; application</a>&#8230;). One of the first players to propose a full-fledged messenger application based on the Comet paradigm was <a href="http://www.meebo.com/">Meebo</a>. Previously, web chats relied on page refresh or applets/plug-ins. Soon after the success of Meebo, the arena of new generation chats/messengers quickly became crowded. It is interesting to notice that the widespread success of Comet chats arrived with the in-house engineering made by the major social companies. <a href="http://www.google.com/talk/">Google Talk</a> inside Gmail and the <a href="http://www.facebook.com">Facebook</a> chat are two clear examples.</p>
<p>Chat and messenger Comet applications are much simpler and lighter on requirements with respect to online trading Comet applications. For instance, bandwidth throttling and very low latency are generally not really necessary. Even if the number of concurrent users can be higher than trading applications, the event throughput for each user is much lower. This means that the overall outbound message throughput is generally much higher in trading applications (you can have tens of messages per second per user in trading vs. one per second or less in chats). So, the only requirement for chat-oriented Comet servers is to scale well over high numbers of TCP sockets. While Meebo started with <a href="http://www.lighttpd.net/">lighthttpd</a>, the major social sites developed their servers internally, more than using off-the-shelf products.</p>
<p>The live chat example above is based on another Lightstreamer demo. You can check out the <a href="http://www.lightstreamer.com/demos.htm#ChatDemo">full source code and explanation</a>.</p>
<h2>Even More Chat</h2>
<p><iframe src ="http://www.lightstreamer.com/share/EmbeddableDemos/RoundTripDemo_Embed/" width="308px" height="184px" frameborder="0" scrolling="no" style="float:left; margin-top:3px; margin-right:5px; margin-bottom:3px">
<p>Your browser does not support iframes.</p>
<p></iframe> The launch of <a href="http://wave.google.com/">Google Wave</a> pushed real-time interaction a step further. One of the features of Google Wave that caused most hype is the <strong>character-by-character</strong> real-time dispatching of messages. Well, let me mention immodestly that here at Lightstreamer we publicly demonstrated this feature in February 2006, when my colleague Simone Fabiano came up with this idea, based on early desktop chat platforms, and implemented a demo <img src='http://cometdaily.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Above you can play with that demo, which is quite effective (what do you think?). Just type something in any of the two &#8220;broadcast&#8221; fields. Your message will be pushed in real-time as you type it to all the browsers connected to this page. For the best experience, open this page in two different browsers, or ask a colleague to visit this page in their browser as well.</p>
<p>You can check out <a href="http://www.lightstreamer.com/demos.htm#RoundTripDemo">more information</a> on this demo.</p>
<h2>Monitor Consoles</h2>
<p><iframe src ="http://www.lightstreamer.com/share/EmbeddableDemos/MonitorDemo_Embed/" width="280px" height="90px" frameborder="0" scrolling="no" style="float:left; margin-top:3px; margin-right:20px; margin-bottom:3px">
<p>Your browser does not support iframes.</p>
<p></iframe> From a more general perspective, the Comet paradigm is the right solution when you need to monitor the state of any variables in real time. There exist many kinds of monitor consoles. There are consoles for monitoring software processes, hardware components, the physical environment (e.g. atmospheric or geological variables), transportation systems, etc. These consoles are often web-based and they usually provide the current snapshot for a given set of variables. Again, being able to push updates for such variables in real-time, without a manual page refresh or traditional Ajax polling techniques, will provide a dramatic improvement to the system.</p>
<p>Above you can see an example of a tiny monitor console, which shows some real-time variables of an actual Lightstreamer Server instance. The demo is pushing updates on: the free memory on the server, the current number of connections to the server, the current total outbound bandwidth used by the server, and the total number of bytes pushed since server&#8217;s startup.</p>
<p>Again, the <a href="http://www.lightstreamer.com/demos.htm#MonitorDemo">full Lightstreamer demo from which the example above was extracted is available with source code and explanations</a>.</p>
<h2>Conclusions</h2>
<p>I focused on three typical examples of real-time applications. Many more application domains can benefit from the Comet paradigm. The raise of the number of good Comet servers on the market, both free and commercial, is helping many application progressively transition to the Comet-driven real-time web.</p>
<p>Many other online examples are available from the <a href="http://www.lightstreamer.com/demos.htm">Lightstreamer gallery</a>, covering several different client-side technologies (including <strong>Ajax</strong>, <strong>Flex</strong>, <strong>Silverlight</strong>, <strong>.Net</strong>, <strong>Java</strong>, and <strong>iPhone</strong>). Below is the full list to date:</p>
<h3>HTML &#038; JavaScript</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#StockListDemo_Basic">Basic Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#StockListDemo">Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#StockListDemo_Frames">Framed Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#BandwidthDemo">Bandwidth Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#GridDemo">Simple Grid Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#ChartDemo">Chart Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#PortfolioDemo_Basic">Basic Portfolio Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#PortfolioDemo">Portfolio Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#DropDownDemo">Drop-Down Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#ChatDemo">Basic Chat Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#MessengerDemo">Basic Instant Messenger Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#RoundTripDemo">Round-Trip Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#MonitorDemo">Monitor Console Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#WebTelemetryDemo">Web Telemetry Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#RSSDemo">RSS News Reader Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#StockListDemo_Mini">Mini Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#ChartDemo_Mini">Mini Chart Demo</a></li>
</ul>
<h3>Other Ajax Frameworks</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#GIDemo_Basic">TIBCO General Interface :: Basic Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#GIDemo_Advanced">TIBCO General Interface :: Advanced Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#DojoDemo">Dojo :: Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#AtlasDemo">Microsoft ASP.NET AJAX :: Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#InteropFest1.0">OpenAjax Alliance - InteropFest 1.0</a></li>
</ul>
<h3>Flash, Flex, and Air</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#Flash_StockListDemo_Basic">Flash Bridge :: Basic Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#Flash_StockListDemo">Flash Bridge :: Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#Flex_StockListDemo">Flex :: Stock-List Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#AIR_StockListDemo">AIR :: Stock-List Demo</a></li>
</ul>
<h3>Silverlight</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#Silverlight_StockListDemo">Basic Stock-List Demo</a></li>
</ul>
<h3>.NET</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#.NET_StockListDemo">Basic Stock-List Demo</a></li>
</ul>
<h3>Java SE</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#JavaSE_TradingDemoLeg">Trading Client Demo</a></li>
</ul>
<h3>Java ME</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#JavaME_StockRTDemo">Basic Stock-List + Round-Trip Demo</a></li>
</ul>
<h3>Others</h3>
<ul>
<li><a href="http://www.lightstreamer.com/demos.htm#Excel-DDE_DemoLeg">Excel DDE Demo</a></li>
<li><a href="http://www.lightstreamer.com/demos.htm#iPhoneDemo">iPhone Demo</a></li>
</ul>


<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F&amp;title=Concrete+Comet+Examples" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F&amp;title=Concrete+Comet+Examples" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F&amp;title=Concrete+Comet+Examples" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F&amp;title=Concrete+Comet+Examples" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F&amp;title=Concrete+Comet+Examples', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F&amp;title=Concrete+Comet+Examples" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcometdaily.com%2F2009%2F10%2F23%2Fconcrete-comet-examples%2F&amp;title=Concrete+Comet+Examples" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://cometdaily.com/2009/10/23/concrete-comet-examples/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
