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 the full features of our service. See what real time collaboration is all about !
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.
WIN 500$ by referring the winning developer to the XTWIP competition !
This is your chance to show how many creative Action Script developers you have in your contact list. Just make sure to join the XTWIP competition as a referrer and that all developers who join the competition by your recommendation also confirm your email address.
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.
You should follow us on Twitter @xtwip for news.
Whether you are a developer or a referrer, be sure to check out the terms and conditions for the XTWIP contest before you join.
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, accurate and up-to-date at all times, including, but not limited to, information concerning intellectual property ownership and rights thereto.
If you have questions or suggestion, please use our feedback form and we’ll get back to you.
In this post, we’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 interactive, collaborative document.
workspace = real time XML document
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’re going to show you how to create, delete and access a workspace.
As a third party application developer, all you need to do is post a request to our front end server, authenticating yourself by sending the devKey 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 XTWIP JSON-RPC API Reference [pdf].
Here’s what happens when you make the request
As a general fact, the business logic inside the XTWIP infrastructure is transparent to you. In order to manage collaboration instances, you only need to post the JSON-RPC requests and interpret the results.
After you’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.
The XTWIP SDK for Flash/Flex automatically looks for the authentication information it needs to connect to the workspace in the flashvars of the embed code of your application. In order to get that authentication information however, you need to follow the steps described below:
This combination of devKey and temporary credentials bares several guarantees of security and flexibility:
The workflow for deleting a workspace is almost the same as for creating one, the only exception being you need to provide the ID of the workspace you wish to delete.
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 XTWIP JSON-RPC API Reference [pdf].
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 and adding friends on Facebook is bounded. There is only as much relevant information at any given time and following more and more people won’t change that. To the contrary, social media is believed to have some significant negative effects, such as eroding attention spans and disrupting individual focus.
When developing XTWIP, we had in mind harnessing the power of the real time web in order to make people focus, work together and get things done while keeping up to date 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 quantity to quality.
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 teams of users to:
And have you ever noticed how annoying is to have work and communication 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, even if 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’re creating ? Or in the document you’re writing ? Or in the workflow you’re so meticulously laying out ?
Wouldn’t it be better if the people who nag you about “how you should change the color scheme on that web page concept” could actually change the color scheme themselves, side-by-side with you ?
How about not spending 10 minutes on the phone with a customer who’s trying to explain how to drag 2 buttons around around to the upper-left side corner ? How about if he could do it himself while you watch and fine-tune? That would be a very empowering feeling to the customer and it would be a great time (and stress) saver for you.
So what if you’re an architect or interior designer ? Maybe your clients are as busy and you are and they can’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’t you think ?
Or how about shopping together with your online friends ? Maybe it’s for a group gift you want to buy or even just for the fun of it.
Wait wait… I think I have a better one. How about you design your own Nikes together with your friends ?
Our vision is about merging work and communication into one single process. About actually producing information in a social, fun and interactive way.
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 – developers, designers and visionaries – to meet us half way.
Or – as Elvis so eloquently put it – “A little less conversation, a little more action please“
Do you have a great idea about a real time collaboration application ? Drop in a comment, send us your feedback give or twitter us about it.
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 document is an important tag, so it gets a unique ID –>
<document id=”7″>
<!– The same goes for the button –>
<button id=”9″>
<!– The attributes of the button however, are not that important from a collaborative stand-point –>
<label text=”Collaborative Button” color=”6600FF”>
<background src=”xtwip_logo.jpg>
<background color=”222222″>
<link url=”http://www.xtwip.com”>
</button>
[...]
</document>
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.
Let’s look at the advantages:
There are only two disadvantages:
Number one. If two users happen to modify the exact same atomic object at the same time (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’s right.
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.
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).
If you want to try this type of real time collaboration with your own application, create a Developer Account on XTWIP and there you’ll find everything you need:
Hi guys,
We’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 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 demo of a collaborative application, developed on ActionScript, our primary developing language. But it’s not enough.
Customer Development
Now, we’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’re solving. It’s like most of today’s entrepreneurs called it “the exit from the comfort zone“.
The belief that people don’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’t take into account, that perhaps it’s better to offer little of what’s important to them, not much of unimportant stuff.
If you think we consider ourselves damned by now, think again. We had a vision and we had to concrete it. But now, it’s time for others to speak and to visualize their needs implemented into our service. We’re looking forward to that.
That’s all for now.
For this example, we’ll consider a simple application in you can draw boxes, and you have only 4 options:
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 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.
So let’s say you have application A and application B, working on the same instance containing square1 and square2. Let’s say square1 is already rotated by 30 degrees, and instance A 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 B, applies and additional rotation of 10 degrees, the end result (in both instance A and B).
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) are not commutative – that is changing the order of two actions changes the end result they yield.
The advantages of this approach:
The disadvantages are however more subtle and only through implementing experience did we learn about them:
These significant disadvantages of the event-driven model lead us to the decision that we needed an alternative way 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 …
* Keep following the Types of Collaboration series to get a true insight on how XTWIP provides real time collaboration for your Web & Rich Internet Applications.
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 fundamental ways 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:
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.
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 – and by great I mean useful, concrete stuff we can actually get started on. More details to come when we get back to Bucharest.
What was your Seedcamp experience like ?
Later edit: Check out the XTWIP presentation on SlideShare
We would like to engage you in a short survey, allowing us to be up-to-date with everyone’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!
XTWIP has been selected for Mini Seedcamp in Zagreb, along with 19 other online projects. Five out of twenty projects are founded by Romanian entrepreneurs – and that really makes us proud. We do realize we’re up against some pretty heavy competitors – we respect that and most of all we look forward to that.
It is going to be a challenging experience and a great opportunity for XTWIP to get international exposure. We’ll get a chance to find out how real time collaboration, our core business, is seen by experienced entrepreneurs and investors.
We’ll keep you posted.
See you in Zagreb !
We’re inviting you to a new demo of XTWIP collaborative solution . Click on the link below to see the real time capabilities of XTWIP in a simple sample application developed by one of our collaborators.
This application is cooler if several people use it at the same time. So don’t forget to invite your friends.
Failing that, open the link in two separate browser windows and see how the changes from one reflect on the other.
Don’t forget to give us feedback - just post a comment below or Twitter us.
We presented XTWIP alpha at SeedMoney breakfast today at Cafe Zu.
For those of who missed it, here it is: http://bit.ly/6ccSSw
We want to thank all those present, who gave us feedback regarding the demos, the platform and even regarding our presentation. We promise we will continue to improve our skills as we will continue to upgrade the platform.
Out next step is to prepare the platform for it’s users. Tehnically, we are defining the API for integrating applications into XTWIP. We will sure let you know when that step is ready.
For now, send us requests for invites on XTWIP alpha. Post a comment here, or leave your email in a direct message on twitter @xtwip.
See ya
We will release XTWIP Private Alpha, tomorrow for Seedmoney Breakfast at Cafe Zu
This means you’ll get invites to try out xtwip.com and to share with your friends.
You’ll see two Java(FX) apps we developed on the XTWIP collaborative API:
We’d really appreciate your feedback so we’re expecting you tomorrow, 9 AM, at Cafe Zu
This week we attended Launch48 in Bucharest with Decily, a web app for brainstorming and making online decisions on the fly. We had to envision, plan, develop and market this in 48 hours. Needless to say, this was quite a adrenaline-rushing, roller-coaster-like experience and it has taught us a lot about how to get things done, no questions asked.
As if the 48 hours of Decily.com of start-up on steroids weren’t enough, we also presented a first draft for XTWIP at OpenCoffee Thursday morning. We had a lot of questions from people in the room, got quite a few good ideas out of it – the most significant being we should start active conversations with potential customers even before our service is market ready. Next week on Wednestday, we’re presenting XTWIP at Seedmoney Breakfast, so we hope we’ll see you there
Back to the Launch48 experience, we’d like to thank the advisory board and the mentors for their valuable feedback. Most of all, however, we thank the team we worked with for all the effort they put into Decily during the 2-day event. Particularly, we’d like to thank Val for the hard work, expertise and useful insight he invested into Decily.
SeVinde.ro and OpenMyCV.com were the other two projects being implemented at the event. They also had great, simple-but-inspiring concepts and their teams also did a great job at launch48ing. We are honoured to have been in the same start-up sandbox as them
The projects were presented at NetCamp in 20-minute slots, together with other inspiring speeches and great initiatives
You can also find a short presentation of Decily here on Youtube
Recently, we have been asked whether TWIP is a direct competitor of Wave, the latest and hottest technology since Maps.
How is TWIP different ? Do we believe in the success of Wave? Do we have the same market?
“Are you out of your mind competing with Google?” some of you could ask. Yes, we are. But we don’t think of it as competition.
First of all, we thank Google for introducing and explaining the concept of real time collaboration to the online community and to the web industry. Wave is a powerful conversational tool, extremely extensible and easy to integrate with other web-applications. We hope that, along with other tools on the market, developers will become more and more attracted to building collaborative software.
So what are the differences between Wave and TWIP?
From a technical standpoint, the two solutions converge to the same idea : servers that manage the communication and synchronize the content between users. TWIP uses XMPP for message management just like Wave. To some extent, both use Operational Transforms to merge changes into the data model.
In terms of target, we are not addressing the same users.
Wave is the newest conversational tool. It has a lot of cool features (have you seen the spell checker?…wow), all perfect for it’s raison d’etre: a conversational tool. Even if extended, it is still a tool for real-time ubercool chat. The External API developed for integrating Wave into other websites is purposed to offer conversations as widgets.
As far as we are concerned…
We are building a platform to host & support applications, each of which individually has it’s own scope. They can exists just fine without TWIP. We are only offering an easy solution for those who want this cool feature named real-time collaboration. They may use it however they want. Even build online games if that’s what they like.
While Wave is more about facilitating the conversation, TWIP is about merging conversation & workflow. Switching between actual work (coding, designing) and feedback (revisions, brainstorming, user reviews) can be time-consuming and exhausting. That’s why we want to rid people of multi-tasking, allowing them to communicate as well as to create at the same time.
Our platform is ready, just a few more finishing touches and it will be online. We’re eager to receive your feedback.
Here are our plans for the near future:
Please let us know if you’re interested in any of these. Your feedback is our driving lesson.
See ya
The greatest thing about XTWIP is that it can easily be attached as a layer over your BI or MiddleWare applications [...] I believe this is the ultimate step a company should take in its efforts to increase productivity.
Val Vladescu , BiVal NE , BPM Solutions Integrator