<?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>XTWIP Real Time Collaboration</title>
	<atom:link href="http://www.xtwip.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xtwip.com/blog</link>
	<description>XTWIP: Blogging a Start-up on Collaboration</description>
	<lastBuildDate>Fri, 16 Apr 2010 12:10:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>XTWIP Developer Contest !</title>
		<link>http://www.xtwip.com/blog/xtwip-developer-contest/</link>
		<comments>http://www.xtwip.com/blog/xtwip-developer-contest/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 00:08:40 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[1000$]]></category>
		<category><![CDATA[500$]]></category>
		<category><![CDATA[action script]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[referral]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[win]]></category>
		<category><![CDATA[xtwip]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=511</guid>
		<description><![CDATA[Are you an Action Script 3 Developer ?
Win 1000$ by developing your own real time collaboration Action Script 3 application with the XTWIP service!

Join the XTWIP contest now, come up with an ingenious application, implement it and send it to us before the 7th of May 2010. Create a developer account to take advantage of [...]]]></description>
			<content:encoded><![CDATA[<h1><span style="font-size: large;">Are you an Action Script 3 Developer ?</span></h1>
<p><strong><span style="font-size: medium;">Win 1000$</span></strong><strong><span style="font-size: medium;"> by developing</span></strong><span style="font-size: medium;"> your own real time collaboration Action Script 3 application with the XTWIP service!</span></p>
<p><br class="spacer_" /></p>
<p><a href="https://spreadsheets.google.com/viewform?formkey=dGpDOHFfMGs3clI3QTUzM1doUGJTMmc6MA" target="_blank">Join the XTWIP contest now</a>, come up with an ingenious application, implement it and send it to us before the 7th of May 2010. <a href="http://www.xtwip.com/register" target="_blank">Create a developer account</a> to take advantage of the full features of our service. See what real time collaboration is all about !</p>
<p><br class="spacer_" /></p>
<p>Submitted applications must contain the executable form (SWF) as well as the source code. We will publish all submitted application on our website. The winner will be established by universal vote.</p>
<p><br class="spacer_" /></p>
<h1><span style="font-size: large;">Do you know creative Action Script 3 Developers ?</span></h1>
<p><span style="font-size: medium;"><strong>WIN 500$ by referring</strong> the winning developer to the XTWIP competition ! </span></p>
<p><br class="spacer_" /></p>
<p><span style="font-size: medium;"><span style="font-size: small;">This is your chance to show how many creative Action Script developers you have in your contact list. Just make sure to </span><a href="https://spreadsheets.google.com/viewform?formkey=dGMybXhLSXFWWUNKd3JFcjRLXzZiSnc6MA" target="_blank"><span style="font-size: small;">join the XTWIP competition as a referrer</span></a><span style="font-size: small;"> and that all developers who join the competition by your recommendation also confirm your email address.</span></span></p>
<p><span style="font-size: small;">After all the participants will have submitted their application, we will publish the applications on the XTWIP website. The winner will be established by universal vote.</span></p>
<p><br class="spacer_" /></p>
<p>You should follow us <a href="http://www.twitter.com/xtwip" target="_blank">on Twitter @xtwip</a> for news.</p>
<p><span style="font-size: small;"><br />
 </span></p>
<p><span style="font-size: small;"><span style="font-size: small;">Whether you are a developer or a referrer, be sure to check out the </span><a href="http://www.xtwip.com/blog/xtwip-contest-terms-and-conditions/" target="_blank"><span style="font-size: small;">terms and conditions</span></a><span style="font-size: small;"> for the XTWIP contest before you join.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/xtwip-developer-contest/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>XTWIP Contest Terms and Conditions</title>
		<link>http://www.xtwip.com/blog/xtwip-contest-terms-and-conditions/</link>
		<comments>http://www.xtwip.com/blog/xtwip-contest-terms-and-conditions/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 23:59:49 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[1000 dollar]]></category>
		<category><![CDATA[500 dollar]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[prize]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[win]]></category>
		<category><![CDATA[xtwip]]></category>
		<category><![CDATA[xtwip contest]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=504</guid>
		<description><![CDATA[All participants to the contest, either as developers or as referrers, must agree to the terms and conditions described below.

All participants (developers and referrers) must enrol on the XTWIP before the 6th of May 2010.

Developers must submit their final Flash/Flex applications before 7th of May, 2010, 23:55 CET

All information provided by participants shall be true, [...]]]></description>
			<content:encoded><![CDATA[<p>All participants to the contest, either as developers or as referrers, must agree to the terms and conditions described below.</p>
<p><br class="spacer_" /></p>
<p>All participants (developers and referrers) must enrol on the XTWIP before the 6th of May 2010.</p>
<p><br class="spacer_" /></p>
<p>Developers must submit their final Flash/Flex applications before 7th of May, 2010, 23:55 CET</p>
<p><br class="spacer_" /></p>
<p>All information provided by participants shall be true, accurate and up-to-date at all times, including, but not limited to, information concerning intellectual property ownership and rights thereto.</p>
<h1 style="text-align: left;"><span style="font-size: large;">Terms and Conditions for Developers</span></h1>
<ol>
<li>Developers can win 1000$ (tax-free)  by creating and submitting a Flash/Flex application that is real time collaborative and uses the XTWIP framework and service in order to achieve real time collaboration features.</li>
<li>By real time collaboration features one must understand that several users cansimultaneously edit the same content within the same instance of the application. For example, if the application draws&amp;designs wireframes for user-interfaces, real time collaboration would allow multiple users to edit the same wireframe (drag buttons, change labels, create, delete, group elements and so on) at the same time, all of them seeing the changes being made almost instantaneously.</li>
<li>By submitting, all developers must agree to publish source code and executable form (swf) applications under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache 2.0 license</a>. XTWIP will publish all the submitted applications (both source code and executable form), mentioning the author&#8217;s name.</li>
<li>The developer can choose to keep his anonymity. In that situation, only the application will be published.</li>
<li>After the submission period deadline (7th of May), all the applications will be published on www.xtwip.com</li>
<li>The winning application will be decided by open vote, in the 7 days following the submission deadline (8 &#8211; 15 May). The official winner will be announced on the 16th of May.</li>
<li>The announced Winning Developer will receive a prize of 1000$, tax-free on a credit/debit card or bank account of their choice.</li>
<li>Developers who were referred to by a third party must confirm the identity of that third party by its email address upon the developer&#8217;s registration. A developer can only mention one referrer. The referrer confirmed by the winning developer also receives a 500$ prize.</li>
<li>The Developer can include any other technology, framework or source code available to him, as long there are no licensing conflict with the submitted application or that the developer has explicit permission for use. All liability for potential conflict belongs to the Developer.</li>
<li>Developers agree to design the user experience and interface for their application only in English.</li>
<li style="color: #a71505;">In order for the prize to be given by XTWIP to the Winning Developer, a minimum of 10 (ten)  eligible applications must be submitted before the specified the deadline. In case fewer applications are submitted, XTWIP retains the right not to give the 1000$ prize to the Winning Developer.</li>
<li>Teams of developers may apply to work together on the same application. However, we only deal with one contact person and there is only one prize</li>
</ol>
<h1 style="text-align: left;"><span style="font-size: large;">Terms and Conditions for Referrers</span></h1>
<ol>
<li>Referrers can win 500$ USD (tax free) by recommending the XTWIP Contest to developers who enrol in the contest and send an eligible real time collaboration application before the deadline (7th of May). The only referrer who wins is the one who recommended the only developer who wins.</li>
<li>Referrers must provide the name (first, last) and the email address of the developers they have encouraged to join the XTWIP contest.</li>
<li>There is no limit on how many referrals one referrer can make.</li>
<li>Upon subscription, the Developer must confirm the email address of his referrer in the enrolment form. A referral without the Developer&#8217;s confirmation will not be acknowledge.</li>
<li>A Developer may only confirm one referrer (by one valid email address).</li>
<li>If several referrals occur for the same developer, we will only consider the one the developer confirms.</li>
<li>If a developer confirms a referrer that has not listed the developer, the referral is considered valid.</li>
<li>If a developer confirms a referrer that has not joined the contest, the referral is considered invalid.</li>
</ol>
<p><br class="spacer_" /></p>
<p>If you have questions or suggestion, please use our feedback form and we&#8217;ll get back to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/xtwip-contest-terms-and-conditions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing instances of collaboration</title>
		<link>http://www.xtwip.com/blog/managing-instances-of-collaboration/</link>
		<comments>http://www.xtwip.com/blog/managing-instances-of-collaboration/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 16:32:42 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[accessing]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[embedding]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[instance]]></category>
		<category><![CDATA[real time]]></category>
		<category><![CDATA[workspace]]></category>
		<category><![CDATA[xtwip]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=472</guid>
		<description><![CDATA[In this post, we&#8217;ll explain how to manage collaboration instances (we call the workspaces) on the XTWIP infrastructure. The workspace is an XML description of the data in your application, which several instances and several users can access, modify and interact with at the same time.
Think of the workspace as some sort of real time [...]]]></description>
			<content:encoded><![CDATA[<p>In this post, we&#8217;ll explain how to manage collaboration instances (we call the <strong>workspaces</strong>) on the XTWIP infrastructure. The workspace is an XML description of the data in your application, which several instances and several users can access, modify and interact with <strong>at the same time</strong>.</p>
<p>Think of the <strong>workspace</strong> as some sort of real time interactive, collaborative document.</p>
<p style="text-align: center;"><span style="font-size: x-large;">workspace = real time XML document</span></p>
<p><span style="font-size: small;">While running a collaborative instance of your application, all changes are tracked, sent to all online participants and saved on the XTWIP. However, in this post we&#8217;re going to show you how to <strong>create</strong>, <strong>delete</strong> and <strong>access</strong> a workspace.</span></p>
<p><span style="font-size: small;"><br />
 </span></p>
<h1 style="text-align: left;"><span style="font-size: large;">Creating a workspace</span></h1>
<p><span style="font-size: small;">As a third party application developer, <strong>all you need to do</strong> is post a request to our front end server, authenticating yourself by sending the <strong>devKey</strong> provided to you. The server will respond with the workspaceID assigned to that workspace. You will need to store this ID, since you will later need it to refer the workspace. For more information on how to post a create workspace request, go through the <a title="XTWIP JSON-API Reference for Workspace Management" href="http://www.xtwip.com/twip_static/XTWIP_JSON-RPC_API_reference.pdf" target="_blank">XTWIP JSON-RPC API Reference</a> [pdf].</span></p>
<p><span style="font-size: small;"><br />
 </span></p>
<p><span style="font-size: small;">Here&#8217;s <strong>what happens</strong> when you make the request</span></p>
<p style="text-align: center;"><span style="font-size: small;"><a title="Create a workspace XTWIP" href="http://www.xtwip.com/blog/wp-content/uploads/2010/03/XTWIP_create.png" target="_blank"></a><a href="http://www.xtwip.com/blog/wp-content/uploads/2010/03/XTWIP_create1.png"><img class="aligncenter size-medium wp-image-482" title="Create a workspace on XTWIP" src="http://www.xtwip.com/blog/wp-content/uploads/2010/03/XTWIP_create1-300x202.png" alt="Creating a workspace on XTWIP" width="300" height="202" /></a><br />
 </span></p>
<ol>
<li><span style="font-size: small;">The user  hits a &#8220;New&#8221; button and the server-side for your application receives a request.</span></li>
<li>Your server then forwards the request to the XTWIP server, providing the devKey as an authentication mechanism. Optionally, it can also provide a name for the workspace or an initial content of the workspace XML (by default, the name is set to &#8220;Workspace&#8221; and the XML content is set to be empty).</li>
<li>The XTWIP front end performs a number of tasks before  stepping further:
<ul>
<li>
<ul>
<li>Checks the availability of your devKey</li>
<li>Checks if you have the right to create additional workspaces (if the creation limits per developer has not been exceeded)</li>
<li>Are you a paying customer ? Should any additional quality of service conditions be met for this request ?</li>
<li>It balances the request on the least occupied backend server, depending on your developer subscription type.</li>
<li>Finally, it forwards the request to the backend server that best fits several criteria (load, quality of service).</li>
</ul>
</li>
</ul>
</li>
<li>The backend server actually creates the workspace and it confirms the operations as successful. In case the operation fails, the request will be sent again to another available backend server.</li>
<li>The front end server marks the operation as successful, stores the workspace ID in the database together with the server onto which it is hosted. It returns the workspace ID to the developer server.</li>
<li>The developer server should also store the workspace ID, for any further reference (access request, deletion etc). It also notifies the end-user of the successful operation.</li>
</ol>
<p><br class="spacer_" /></p>
<p>As a general fact, the business logic <strong>inside the XTWIP infrastructure</strong> is transparent to you. In order to manage collaboration instances, you only need to post the JSON-RPC requests and interpret the results.</p>
<p><br class="spacer_" /></p>
<h1 style="text-align: left;"><span style="font-size: large;">Accesing a workspace</span></h1>
<p>After you&#8217;ve created the workspace, your main concern will be how to access it: how to make your application aware of the collaboration instance and make sure all changes are delivered on that instance.</p>
<p>The XTWIP SDK for Flash/Flex automatically looks for the authentication information it needs to connect to the workspace in the <strong>flashvars </strong>of the embed code of your application. In order to get that authentication information however, you need to follow the steps described below:</p>
<p style="text-align: center;"><a title="Accessing a collaboration instance on XTWIP" href="http://www.xtwip.com/blog/wp-content/uploads/2010/03/XTWIP_access.png" target="_blank"><img class="aligncenter size-medium wp-image-483" title="Access a workspace on XTWIP" src="http://www.xtwip.com/blog/wp-content/uploads/2010/03/XTWIP_access-300x210.png" alt="How to load a XTWIP collaboration instance in your application" width="300" height="210" /></a></p>
<ol>
<li>The user decides to open an existing workspace, so the browser sends a request to the developer server.</li>
<li>Your developer server makes any additional verification (&#8220;does this user have rights to the workspace requested?&#8221; sort of thing). If everything checks out, the request for access is forwarded to the XTWIP front-end, together with the devKey associated to the application. Optionally, the email and the name of the user may be provided, so each user can have a unique identity in the collaboration environment.</li>
<li>The XTWIP front-end authenticates that the developer identified by devKey indeed has the right to access the workspace. It also finds the back-end server that currently stores the workspace. After that, a request for a temporary token is sent to the back-end server.</li>
<li>The back-end server randomly generates a temporary username &amp; temporary password and then sends them to the front-end.</li>
<li>The front-end forwards them to the developer server, together with the IP and the port of the back-end server that is hosting the collaboration session.</li>
<li>The developer server pastes the temporary username and temporary password into the embed code for the collaborative application. </li>
<li>The application runs, the XTWIP Flash/Flex SDK loads the authentication data from the embed code (flashvars) and it connects to the back-end server, providing the credentials for authentication. The application instance has now joined collaboration on the workspace and may send/receive data, changes, chat messages, presence, ownership and so on.</li>
</ol>
<p><br class="spacer_" /></p>
<p>This combination of devKey and temporary credentials bares several guarantees of security and flexibility:</p>
<ul>
<li>Each developer can only access those workspaces he/she created.</li>
<li>Developers can define their own access control policies for their users (since this logic is to be implemented in the developer server, not in the XTWIP infrastructure)</li>
<li>Users cannot access workspaces without a confirmation of access rights from the application developer.</li>
<li>Users do not have access to devKey and do not have access to directly creating, deleting or accessing workspaces (without going through the application developer)</li>
<li>Temporary credentials expire minutes after the user has left the collaboration session. In order to reconnect, the user must obtain a new set of temporary credentials.</li>
</ul>
<p><br class="spacer_" /></p>
<h1 style="text-align: left;"><span style="font-size: large;">Deleting a workspace</span></h1>
<p>The workflow for deleting a workspace is almost the same as for creating one, the only exception being you need to provide the <strong>ID</strong> of the workspace you wish to delete.</p>
<p><br class="spacer_" /></p>
<p>We hope this post provided an overview on how you, as a developer, can manage the collaboration instances hosted on the XTWIP infrastructure. For a more detailed understanding of creating, deleting, accessing and retrieving workspaces, go through the <a title="XTWIP JSON-API Reference for Workspace Management" href="http://www.xtwip.com/twip_static/XTWIP_JSON-RPC_API_reference.pdf" target="_blank">XTWIP JSON-RPC API Reference</a> [pdf].</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/managing-instances-of-collaboration/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Less conversation(s), more action(s)</title>
		<link>http://www.xtwip.com/blog/less-conversations-more-actions/</link>
		<comments>http://www.xtwip.com/blog/less-conversations-more-actions/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 14:46:19 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Stories]]></category>
		<category><![CDATA[attention]]></category>
		<category><![CDATA[attention span]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[data stream]]></category>
		<category><![CDATA[disruption]]></category>
		<category><![CDATA[elvis]]></category>
		<category><![CDATA[eroding attention]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[instant messaing]]></category>
		<category><![CDATA[interruption]]></category>
		<category><![CDATA[real time]]></category>
		<category><![CDATA[relevant]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=458</guid>
		<description><![CDATA[With the exponential growth of social networks and the explosion of real time data streams, everyone is about the conversation in the real time web. Of course, this is great value for a lot users, since the information travels faster and faster from producers to consumers. However, the value of sharing links, (re)tweeting the latest developments [...]]]></description>
			<content:encoded><![CDATA[<p>With the exponential <a href="http://www.pamorama.net/2010/02/10/the-facebook-juggernaut-exponential-growth-worlds-leading-news-reader/" target="_blank">growth of social networks</a> and the <a href="http://mashable.com/2009/03/16/twitter-growth-rate-versus-facebook/" target="_blank">explosion</a> of real time data streams, everyone is about the <strong>conversation</strong> in the <strong>real time</strong> web. Of course, this is great value for a lot users, since the information travels faster and faster from <strong>producers </strong>to <strong>consumers. </strong>However, the value of sharing links, (re)tweeting the latest developments and adding friends on Facebook is <strong>bounded</strong>. There is only as much <strong>relevant information</strong> at any given time and following more and more people won&#8217;t change that. To the contrary, social media is believed to have some significant negative effects, such as  <a href="http://www.nydailynews.com/lifestyle/health/2009/02/25/2009-02-25_are_facebook_myspace_and_twitter_eroding.html" target="_blank">eroding attention spans</a> and <a href="http://arstechnica.com/tech-policy/news/2010/02/is-the-endless-data-stream-eroding-our-attention-spans.ars" target="_blank">disrupting individual focus</a>.</p>
<p><br class="spacer_" /></p>
<p>When developing XTWIP, we had in mind harnessing the power of the real time web in order to make people <strong>focus, work together </strong>and <strong>get things done</strong> while <strong>keeping up to date</strong> with relevant developments from co-workers. Our service helps developers bring their application users together in producing information, rapidly reviewing it and delivering it on time. XTWIP is about shifting real time from <em>quantity </em>to <strong>quality.</strong></p>
<p><br class="spacer_" /></p>
<p>Most real time services on the web have an outward perspective, inviting people to share and re-share information that has already been produced (blog/magazine articles, pictures, artwork, witty quotes and so on). XTWIP challenges developers to rethink the possibilities of their applications so they can engage <strong>teams of users</strong> to:</p>
<ul>
<li>be more creative &amp; inspired</li>
<li>brainstorm while actually working</li>
<li>distribute tasks naturally and efficiently</li>
<li>deliver faster, with less effort</li>
<li>turn negative stress (deadlines) into positive stress (reciprocal engagement)</li>
</ul>
<p><br class="spacer_" /></p>
<p>And have you ever noticed how annoying is to have <strong>work</strong> and <strong>communication </strong>as two separate processes ? You sit at your desk trying to focus on your tasks. All of a sudden, 5 emails rush in a completely mess up your thought patterns, <strong>even if </strong>those emails directly concern what you are working on. What if you could receive the feedback and the help you need directly in the design you&#8217;re creating ? Or in the document you&#8217;re writing ? Or in the workflow you&#8217;re so meticulously laying out ?</p>
<p><br class="spacer_" /></p>
<p>Wouldn&#8217;t it be better if the people who nag you about &#8220;<em>how you should change the color scheme on that web page concept</em>&#8221; could actually <strong>change the color scheme themselves</strong>, side-by-side with you ?</p>
<p><br class="spacer_" /></p>
<p>How about not spending 10 minutes on the phone with a customer who&#8217;s trying to explain how to drag 2 buttons around around to the upper-left side corner ? How about if he could do it <strong>himself</strong> while you watch and fine-tune? That would be a very <strong>empowering feeling</strong> to the customer and it would be a great time (and stress) saver for you.</p>
<p><br class="spacer_" /></p>
<p>So what if you&#8217;re an architect or interior designer ? Maybe your clients are as busy and you are and they can&#8217;t afford dropping by your office in the middle of the day. They could just drop a link in the browser and they could drag the virtual furniture around, while you discretely assist them in making the right choices, step by step. This would save a lot of frustration on both sides, don&#8217;t you think ?</p>
<p><br class="spacer_" /></p>
<p>Or how about shopping together with your online friends ? Maybe it&#8217;s for a group gift you want to buy or even just for the fun of it.</p>
<p><br class="spacer_" /></p>
<p>Wait wait&#8230; I think I have a better one. How about you <a href="http://nikeid.nike.com/nikeid/index.jsp" target="_blank">design your own Nikes</a> together with your friends ?</p>
<p><br class="spacer_" /></p>
<p>Our vision is about merging work and communication into one single process. About actually producing information in a social, fun and interactive way.</p>
<p>XTWIP is the backend technology that makes this work. We have taken the first step to making the real time web more than a context(less?) conversation. Now we need you &#8211; developers, designers and visionaries &#8211; to meet us half way.</p>
<p><br class="spacer_" /></p>
<p>Or &#8211; as Elvis so eloquently put it &#8211; &#8220;<em>A little less conversation, a little more action please</em>&#8220;</p>
<p><br class="spacer_" /></p>
<p><em>Do you have a great idea about a real time collaboration application ? Drop in a comment, send us your feedback give or <a href="http://www.twitter.com/xtwip" target="_blank">twitter us</a> about it.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/less-conversations-more-actions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Types of Collaboration: Object based</title>
		<link>http://www.xtwip.com/blog/types-of-collaboration-object-based/</link>
		<comments>http://www.xtwip.com/blog/types-of-collaboration-object-based/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 11:54:08 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[atomic]]></category>
		<category><![CDATA[diffing]]></category>
		<category><![CDATA[merging]]></category>
		<category><![CDATA[non-atomic]]></category>
		<category><![CDATA[object based]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=449</guid>
		<description><![CDATA[This implementation of real time collaboration seems to offer the best balance between performance, usability and developer needs. This is why we chose it for the current XTWIP implementation of collaboration.

The object based approach follows these 4 simple rules:

The data model of the collaborative application can be represented as an XML. Of course, the application [...]]]></description>
			<content:encoded><![CDATA[<p>This implementation of real time collaboration seems to offer the best balance between performance, usability and developer needs. This is why we chose it for the <strong>current XTWIP implementation </strong>of collaboration.</p>
<p><br class="spacer_" /></p>
<p>The object based approach follows these 4 simple rules:</p>
<ul>
<li>The data model of the collaborative application can be represented <strong>as an XML</strong>. Of course, the application can pull data from Twitter, Flickr or Facebook, but by data model we mean <em>the data the application stores.</em></li>
</ul>
<p><em> </em></p>
<ul>
<li>Whenever the application changes something, it just notifies the XTWIP client-side SDK that &#8220;something has changed&#8221;. The SDK <strong>automatically detects</strong> what has changed and send the difference over to the XTWIP server and to the other application instances.</li>
</ul>
<p><br class="spacer_" /></p>
<ul>
<li>In order to better avoid conflicts, the XML may have <strong>atomic tags</strong> or <strong>non-atomic tags</strong>. An atomic tag has an <strong>unique ID attribute</strong> and it may contain either atomic or non-atomic tags. A non-atomic tag does not have a unique ID and it may only contain other non-atomic tags. The XTWIP SDK provides the unique IDs and it guarantees they are unique across all application instances. You can think of atomic tag as components which the developer considers important enough to separate and non-atomic tags as properties of those components. See the example below to get a better idea.</li>
</ul>
<p><br class="spacer_" /></p>
<p><em>&lt;!&#8211; The document is an important tag, so it gets a unique ID &#8211;&gt;</em><em><br />
 </em></p>
<p><em>&lt;document </em><strong><em>id=&#8221;7&#8243;</em></strong><em>&gt;</em></p>
<p style="padding-left: 30px;"><em>&lt;!&#8211; The same goes for the button &#8211;&gt;</em><em> </em></p>
<p><em> </em></p>
<p style="padding-left: 30px;"><em>&lt;button </em><strong><em>id=&#8221;9&#8243;</em></strong><em>&gt;</em></p>
<p style="padding-left: 60px;"><em>&lt;!&#8211; The attributes of the button however, are not that important from a collaborative stand-point  &#8211;&gt;</em></p>
<p><em> </em></p>
<p style="padding-left: 60px;"><em>&lt;label text=&#8221;Collaborative Button&#8221; color=&#8221;6600FF&#8221;&gt;</em></p>
<p><em> </em></p>
<p style="padding-left: 60px;"><em>&lt;background src=&#8221;xtwip_logo.jpg&gt;</em></p>
<p><em> </em></p>
<p style="padding-left: 60px;"><em>&lt;background color=&#8221;222222&#8243;&gt;</em></p>
<p><em> </em></p>
<p style="padding-left: 60px;"><em>&lt;link url=&#8221;http://www.xtwip.com&#8221;&gt;</em></p>
<p><em> </em></p>
<p style="padding-left: 30px;"><em>&lt;/button&gt;</em><em><br />
 </em><em> [...]</em></p>
<p><em> </em></p>
<p><em>&lt;/document&gt;</em></p>
<p><em> </em></p>
<p><em> </em></p>
<ul>
<li>When two application instances (actually, two users) change the same atomic tag at the same time, the last change has priority over the first. Of course, a merging of the content will be attempted &#8211; failing that, the last change will remain. The distinction between atomic and non-atomic tags comes in very handy here, because it tells the merging algorithm how it should try to match tags. </li>
</ul>
<p><br class="spacer_" /></p>
<p>This (apparently) simple protocol provides application developers with a simple gateway to collaboration. No longer do they have to write server-side code or write their own custom code for diffing and merging differences. The XTWIP SDK together with the XTWIP Collaboration Service provide that for just a few lines of code. All developers need to do is read the tutorial, drop a few lines of code into their application and they can redeploy their application as a collaboration experience.</p>
<p><br class="spacer_" /></p>
<p>Let&#8217;s look at the <strong>advantages</strong>:</p>
<ol>
<li><strong>Very easy to deploy</strong>. There is not specific server-side logic and developers can just embed their application and the XTWIP SDK takes care of the rest (connecting to server, handshaking, getting data, posting differences and so on)</li>
<li><strong>Very easy to implement</strong>. All you need to add to your application is: listening for when outside changes appear (so you know when to redraw), notifying the SDK of when something has changed, serializing your data model (XML serialization is already built in the SDK) and adding a connect statement on application load. That&#8217;s it !</li>
<li><strong>Fast execution</strong>, low CPU cost. Unlike Operational Transforms methods, object based diffing is significantly faster.</li>
<li><strong>Guaranteed consistency</strong>. This means that all application instances will rapidly converge to the same instance of the data model, no matter how many changes are being performed.</li>
</ol>
<p><br class="spacer_" /></p>
<p>There are only two disadvantages:</p>
<p><br class="spacer_" /></p>
<p>Number one. If two users happen to modify the <strong>exact same</strong> atomic object at the <strong>same time</strong> (within 300 ms of each other, on average), the XTWIP SDK will automatically merge the two changes. When merging fails, the last change performed will implicitly have priority.  Merging means a further analysis of what has changed (attributes, child tags) and putting it all together. Merging usually fails when the two users change exactly the same attributes and no automatic conclusion can be drawn as to who&#8217;s right.</p>
<p><br class="spacer_" /></p>
<p>In our experience, however, this type of fine-grained micro-conflict between versions is very rare. When it does happen, the users notice it right away. They tend to immediately react and choose a final state for the change they wanted.</p>
<p><br class="spacer_" /></p>
<p>Number two. Whole pieces of the data model are serialized and send across the network, so if your application deals a lot with raster image editing, object-based collaboration is not the best idea (at least, not by itself).</p>
<p><br class="spacer_" /></p>
<p>If you want to try this type of real time collaboration with your own application, create a <a href="http://www.xtwip.com/register" target="_blank">Developer Account</a> on <a href="http://www.xtwip.com" target="_blank">XTWIP</a> and there you&#8217;ll find everything you need:</p>
<ul>
<li>A short tutorial on how to get started</li>
<li>The client side SDK</li>
<li>A full documentation on the protocol</li>
<li>A full description with examples on how to manage (create, delete, request access) to multiple collaborative instances (workspaces) </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/types-of-collaboration-object-based/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Exit from the Comfort Zone</title>
		<link>http://www.xtwip.com/blog/the-exit-from-the-comfort-zone-2/</link>
		<comments>http://www.xtwip.com/blog/the-exit-from-the-comfort-zone-2/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 23:21:41 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Pure Business]]></category>
		<category><![CDATA[customer]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=430</guid>
		<description><![CDATA[Hi guys,
We&#8217;re on a trip to learning right now. We learn from you, the everyday users. But this is a new approach for us, IT specialists and developers.

Product Development
 Since our startup began, we faced a lot of technical challenges and mostly put our efforts on creating a prototype for you guys. We failed with [...]]]></description>
			<content:encoded><![CDATA[<p>Hi guys,</p>
<p>We&#8217;re on a trip to learning right now. We learn from you, the everyday users. But this is a new approach for us, IT specialists and developers.</p>
<p><br class="spacer_" /></p>
<p><strong>Product Development</strong><br />
 Since our startup began, we faced a lot of technical challenges and mostly put our efforts on creating a prototype for you guys. We failed with the private alpha release and we continued to improve it until we changed 70% of it. Now we have the SDK ready, the free developer accounts in place, documentations and a <a title="XTWIP demo" href="http://www.xtwip.com/demo/" target="_blank">demo</a> of a collaborative application, developed on ActionScript, our primary developing language. But it&#8217;s not enough.</p>
<p><br class="spacer_" /></p>
<p><strong>Customer Development</strong></p>
<p>Now, we&#8217;re onto a new trip. We plan to learn. In an disorganized way, investing 70% of our time networking and searching for people that have the need that we&#8217;re solving. It&#8217;s like most of today&#8217;s entrepreneurs called it &#8220;the exit from the <a title="Comfort Zone Theory" href="http://en.wikipedia.org/wiki/Comfort_Zone_Theory" target="_blank">comfort zone</a>&#8220;.</p>
<p>The belief that people don&#8217;t like it when you offer to much is a fact. We tried, again and again and again, to contact people in order to attract them in using our technology. We didn&#8217;t take into account, that perhaps it&#8217;s better to offer little of what&#8217;s important to them, not much of unimportant stuff.</p>
<p>If you think we  consider ourselves damned by now, think again. We had a vision and we had to concrete it. But now, it&#8217;s time for others to speak and to visualize their needs implemented into our service. We&#8217;re looking forward to that.</p>
<p><br class="spacer_" /></p>
<p>That&#8217;s all for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/the-exit-from-the-comfort-zone-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Types of Collaboration: Event-based</title>
		<link>http://www.xtwip.com/blog/types-of-collaboration-event-based/</link>
		<comments>http://www.xtwip.com/blog/types-of-collaboration-event-based/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:06:41 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[event based]]></category>
		<category><![CDATA[server side logic]]></category>
		<category><![CDATA[synchronization]]></category>
		<category><![CDATA[xtwip server]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=392</guid>
		<description><![CDATA[
For this example, we’ll consider a simple application in you can draw boxes, and you have only 4 options:


makeNewBox(centerX,centerY)
deleteOldBox(boxID)
translateBox(boxID,      X, Y)
rotateBox(boxID,      alpha)


It means that instances of the application transmit across the network only  the actions taken in order to get from the old state to the [...]]]></description>
			<content:encoded><![CDATA[<p><br class="spacer_" /></p>
<p>For this example, we’ll consider a simple application in you can draw boxes, and you have only 4 options:</p>
<p><br class="spacer_" /></p>
<ul>
<li>makeNewBox(centerX,centerY)</li>
<li>deleteOldBox(boxID)</li>
<li>translateBox(boxID,      X, Y)</li>
<li>rotateBox(boxID,      alpha)</li>
</ul>
<p><br class="spacer_" /></p>
<p>It means that instances of the application transmit across the network <strong>only  the actions taken</strong> in order to get from the old state to the new state. This is extremely useful if you have data models that take up a lot of space (like 3D polygon models), but changes made to them can be described using very little space.</p>
<p><br class="spacer_" /></p>
<p>So let’s say you have application <strong>A</strong> and application <strong>B</strong>, working on the same instance containing <strong>square1</strong> and <strong>square2</strong>. Let’s say <strong>square1</strong> is already rotated by 30 degrees, and instance <strong>A</strong> rotates it with another 15 degrees (to a total of 45 degrees). Instead of sending out rotateBox(square1, 45), it sends out rotateBox(square1,15). The great advantage of this approach if two rotations occur in (near) real time, they can get composed over the network. So if, at the same time, application <strong>B</strong>, applies and additional rotation of 10 degrees, the end result (in both instance <strong>A</strong> and <strong>B</strong>).</p>
<p><br class="spacer_" /></p>
<p>The order on the generated events will be the order they reach the XTWIP server. It this case, it may seem that the order of the events is irrelevant, but most actions (operations) <strong>are not commutative</strong> – that is changing the order of two actions changes the end result they yield.</p>
<p><br class="spacer_" /></p>
<p>The advantages of this approach:</p>
<ul>
<li>Events end up      having one single order in all application instances (everyone sees the <strong>same      thing</strong>)</li>
<li>Concurrent      changes (same time, same object) are <strong>composed</strong></li>
<li><strong>Small      traffic</strong> across the      network</li>
</ul>
<p><br class="spacer_" /></p>
<p>The disadvantages are however more subtle and only through implementing experience did we learn about them:</p>
<ul>
<li>Composing concurrent      changes <strong>isn&#8217;t always the best      thing to do</strong>.      Coming back to the previous example, if user A rotates the square by 15      degree and user B rotates it by 10 degrees, the end result will be a total      rotation of 25 degrees. This is a mix of what both users wanted. <strong>But      in fact it isn&#8217;t what either of them wanted</strong>.</li>
</ul>
<p><br class="spacer_" /></p>
<ul>
<li>Requires <strong>server-side      logic</strong> &#8211;      in this model, the XTWIP server has to be aware of what <strong>rotateBox</strong> means. So the      logic for actually performing the rotation has to be on the server. The      downside is that with every application you deploy, the logic for all its      operations has to be deployed on the XTWIP server as well. So this means      more work for developers who use our server for deploying their apps and      more work for us (because we would have to enforce advanced security      restrictions on application logic). More work = bad news</li>
</ul>
<p><br class="spacer_" /></p>
<p>These significant disadvantages of the event-driven model lead us to the decision that we needed an <strong>alternative way</strong> of offering real time collaboration, with less debugging, less risks and less work. This is how we came up with the object-driven collaboration model &#8230;</p>
<p>* Keep following the <strong>Types of Collaboration</strong><strong> </strong>series to get a true insight on how XTWIP provides real time collaboration for your Web &amp; Rich Internet Applications.</p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/types-of-collaboration-event-based/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Types of Collaboration: Introduction</title>
		<link>http://www.xtwip.com/blog/types-of-collaboration-introduction/</link>
		<comments>http://www.xtwip.com/blog/types-of-collaboration-introduction/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:03:13 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[data based]]></category>
		<category><![CDATA[event based]]></category>
		<category><![CDATA[object based]]></category>
		<category><![CDATA[types]]></category>
		<category><![CDATA[xtwip server]]></category>

		<guid isPermaLink="false">http://www.xtwip.com/blog/?p=387</guid>
		<description><![CDATA[When we started XTWIP, we had a simple vision: allowing people to change the same content at the same time. We strongly believe that this can help getting more work done together, without losing time with emails, phone calls and (worst of all) meetings.

However, we soon realized that from a technical stand-point there are three [...]]]></description>
			<content:encoded><![CDATA[<p>When we started XTWIP, we had a simple vision: allowing people to change the <strong>same content</strong> at the<strong> same time</strong>. We strongly believe that this can help getting more work done <strong>together</strong>, without losing time with emails, phone calls and (worst of all) meetings.</p>
<p><br class="spacer_" /></p>
<p>However, we soon realized that from a <em>technical stand-point</em> there are <strong>three fundamental ways</strong> of implementing real time collaboration. To the end-user this probably has no impact whatsoever. But for the developer who makes his/her application collaborative, it is of great importance to choose the best mix of these models:</p>
<p><br class="spacer_" /></p>
<ul>
<li><strong>Event</strong> based collaboration &#8211; actions are sent over the network. The XTWIP server has the logic to execute application specific operations on its own data model.</li>
</ul>
<p><br class="spacer_" /></p>
<ul>
<li><strong>Object</strong> based &#8211; XML-formatted object structures are sent over the network, depending on the part that changes. The XTWIP server requires no logic to execute application specific operations.</li>
</ul>
<p><br class="spacer_" /></p>
<ul>
<li><strong>Data </strong>based collaboration &#8211; actions are sent over the network. The XTWIP server has no logic to execute application specific operations and it periodically polls client-sided applications for the latest data model. The server stores the data model, serves it to new clients, but it doesn&#8217;t understand the data, nor does it have the logic to change it.</li>
</ul>
<p><br class="spacer_" /></p>
<ul>
<li><strong>Operational Transforms</strong> (OT) based collaboration (this is the stuff Google Wave uses). The collaboration server has logic to execute general purpose editing operations (insert, delete, skip) and also the logic to &#8220;merge&#8221; these operations together. For instance, if two users send concurrent actions (almost) simultaneously, those specific actions are modified by OT when they reach their destination so that they make sense in the new context. The server stores and periodically updates the data model. However, OT is very CPU intensive and the results it produces are usually more than what most application developers need. </li>
</ul>
<p><br class="spacer_" /></p>
<p>In the following posts, we’ll explain the differences between these types of collaboration and how you should pick the one the suits best your use case/business case.</p>
<p><strong><br />
 </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/types-of-collaboration-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mini Seedcamp Zagreb 2010</title>
		<link>http://www.xtwip.com/blog/mini-seedcamp-zagreb-2010/</link>
		<comments>http://www.xtwip.com/blog/mini-seedcamp-zagreb-2010/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 07:30:18 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Stories]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[seedcamp]]></category>
		<category><![CDATA[xtwip]]></category>
		<category><![CDATA[zagreb]]></category>

		<guid isPermaLink="false">http://www.ninth-prime.com/?p=357</guid>
		<description><![CDATA[Taking part in Seedcamp Zagreb was a great experience that left us with a better sense of perspective of our business. Yesterday was a very intense, challenging day. It kept us involved since 9 AM, when we had our first 5 minute pitch, until 6 PM when our last mentoring session ended.
We got great feedback &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Taking part in <a href="http://blog.seedcamp.com/" target="_blank">Seedcamp</a> Zagreb was a great experience that left us with a better sense of perspective of our business. Yesterday was a very intense, challenging day. It kept us involved since 9 AM, when we had our first 5 minute pitch, until 6 PM when our last mentoring session ended.</p>
<p>We got great feedback &#8211; and by great I mean useful, concrete stuff we can actually get started on. More details to come when we get back to Bucharest.</p>
<p>What was <em>your </em>Seedcamp experience like ?</p>
<p>Later edit: Check out the XTWIP presentation on SlideShare</p>
<div id="__ss_3187469" style="width: 425px;"><a style="font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;" title="Mini SeedCamp Zagreb" href="http://www.slideshare.net/cristianAndreica/mini-seedcamp-zagreb">Mini SeedCamp Zagreb</a><object style="margin: 0px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ninthprimextwipseedcamp-100215145923-phpapp02&amp;stripped_title=mini-seedcamp-zagreb" /><param name="allowfullscreen" value="true" /><embed style="margin: 0px;" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ninthprimextwipseedcamp-100215145923-phpapp02&amp;stripped_title=mini-seedcamp-zagreb" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/mini-seedcamp-zagreb-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real-time Collaboration Survey</title>
		<link>http://www.xtwip.com/blog/real-time-collaboration-survey/</link>
		<comments>http://www.xtwip.com/blog/real-time-collaboration-survey/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 22:40:14 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ninth-prime.com/?p=343</guid>
		<description><![CDATA[We would like to engage you in a short survey, allowing us to be up-to-date with everyone&#8217;s opinion regarding real-time collaborative applications.
If you have exactly 1 min, give this survey a try. When we have reached 100 responses, we will publish the results.
Enjoy the weekend!
]]></description>
			<content:encoded><![CDATA[<p>We would like to engage you in a short survey, allowing us to be up-to-date with everyone&#8217;s opinion regarding real-time collaborative applications.</p>
<p>If you have exactly 1 min, give this <a href="http://bit.ly/92xtnV">survey</a> a try. When we have reached 100 responses, we will publish the results.</p>
<p>Enjoy the weekend!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xtwip.com/blog/real-time-collaboration-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
