Chat is back

Posted by on July 19, 2010 15:22:00 PM


Chat is back.  Just add a Chat tool, and click on the tab to drop into the chat room.  The new chat tab will be useful because:

Everyone on your team can use it.  It has the correct permissions for each team member, it requires no client software, and it is usable with any modern browser.  It gets messages with HTTP "long polling", so it reaches through firewalls, even proxy firewalls.  This is an important upgrade from our previous chat implementation, and it is especially important for workplaces where Skype is banned for it's bandwidth grabbing, firewall tunneling tricks.

Searchable history.  So, for example, your new team members can go back and find that reference URL that you posted last month.

Convenient linking.  It links to the user profile of the people in the chat room. You can link to ticket 99 with #99. You can upload files and get links and thumbnails.

It shows team activity in one river of information.  You can optionally edit the settings to show team activity - like commits, messages, new and edited tickets - in the chat message stream.


This is the first big win for our bounty program.  We thank D3velopers, an outsourcing company based in Pakistan, for implementing this feature.  They had some previous experience with COMET chat.  They were willing to do research on our preferred server (Nginx).  They were flexible in improving the feature, and delivered on time.  I hope that we can do more of these bounty projects.  Note the "Powered by D3velopers" logo on the top of the "Who's Chatting" column.  If you take responsibility for a tool through the bounty program, you get paid, and you get the logo and link.

Our previous chat implementation had a poor communication protocol that prevented it from working through firewalls.  We let it linger as a quality problem because there are many alternative chats, such as the popular Skype conferencing.  However, we received more and more questions about chat over time, and I am happy now that we have this solid new implementation.

Technology Credits

As usual, we rely on great open source software provided by others.  The technology stack includes the Nginx HTTP Push Module.  We use Nginx in our proxy servers, and we found it to be fast and reliable. The Push Module is a "beta" feature, but it has served us well so far.    We use Xapian text indexing and search, and of course, Ruby on Rails, MySQL, and the whole Linux stack. The D3velopers team used our tool development kit to generate a new tool, and wrote javascript to finish the client side implementation.  We learned  something about playing sound - the little chirp that the browser makes when you get a chat message.  Browsers got quite confused when we asked them to play a sound, and they stopped taking data entry, went to load quicktime, and did other bad things.  Fortunately, the author of Soundmanager2 figured out how to use flash, with a fallback to HTML5 sound features, to play sound reliably.
Subscribe to Our Blog

Get started today with a 14–day FREE trial.

No obligations, no credit card required.

Get Started Now

Get updates about development, productivity, and teamwork