In this interview we talk with Mark Boas about how he used the Comet technology for the Qwiiz game
First some definitions:
"CometD is a scalable HTTP-based event routing bus that uses a Ajax Push technology pattern known as Comet. The term 'Comet' was coined by Alex Russell in his post Comet: Low Latency Data for the Browser."http://cometd.org
"New services like Jot Live and Meebo are built with a style of data transmission that is neither traditional nor Ajax. Their brand of low-latency data transfer to the browser is unique, and it is becoming ever-more common. Lacking a better term, I've taken to calling this style of event-driven, server-push data streaming "Comet"." http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser
What technologies are you using to create your product?
Well, I've tried a fair few different technologies and discarded a lot along the way. I have settled on the classic front end, HTML, CSS and jQuery and Java using CometD for the communication on the serverside. But this may change. As a platform I am using Debian running the application server Jetty in the Amazon cloud.
How did you choose your technologies and platforms?
Trial and error to some extent but really I use technologies that I feel can do the job reliably. Also a hell of a lot of research in the form of surfing and some recommendations from various groups.
How do you manage collaborating on code writing remotely?
If you are talking about just specifically writing code, we don't do much pair programming, it tends to be more a case that we do code reviews. I do think in the near future there is going to be an increase in web-based tools available that will enable a more collaborative way of working and this will make location even less important.
Maybe the readers can suggest solutions on this on the Q&A site. And for other kind of "production" activities?
We use Skype - mostly text chat, though it is very time consuming. Rarely do we speak live - being nerdy types, we try to avoid talking as much as possible (laughs). Seriously though it's nice to have a record of what you've chatted about.
How do you share/exchange files, documents
Email and FTP. I also use Dropbox a lot!
Even the code? No public subversion repository or similar?
Lets talk about Comet. What made you choose that?
What I needed at the time was a form of real time push technology. In fact prior to that that I tried a completely different technique, called 'short polling', which turned out to be too resource-intensive and introduced too much complexity.
People would play Qwiiz on any browser? Without plugins...
No plugins are required. I was fortunate that the tech I'm using is a server side tech which takes advantage of current Ajax techniques on the client, so a browser only needs to support js for it to work, and so far it works on all browsers, including Opera for the Wii.
And they will all get the same questions at the same time?
Oh yeah, this is the beauty of push, it is a broadcast mechanism.
By same time you mean....
Depending on network lag... it leaves the server at the same time. I'm quite confident a question would begin it's journey to the 1000 different clients in the same second.
Thank you Mark. To the readers: if you have any questions, you can post them here using the "comet" tag.