Thoughts on live chat 
Filed under

backend

 

Faster Customization Changes

We’ve been getting a lot of feedback on hab.la recently and we noticed that many of you thought customization was broken. Customization was working, but had a bit of lag due to some very aggressive (and somewhat poorly designed) caching.

I just pushed out a set of changes to the site that will make customization changes take affect instantly :-).

This fix should also fix the problem where the “One more step to go” message gets shown even after the first step was complete. Only the site operator would see this message, but I am sure it made things seem like they were messed up.

For those of you new to Hab.la, you can customize the messages shown in the Hab.la window as well as the colors and positioning of the Hab.la window in the customize section of your My Hab.la page.

There are a lot of exciting things happening here at Hab.la. Kevin should be blogging about some of his contributions to the excitement soon :-)

Filed under  //   backend   cache   memcache   rpc  
Posted by Olark 

Comments [0]

Auto Away on Idle and more

There haven’t been too many blog posts recently, as we’ve been primarily been working on the architecture behind new features, but I thought I’d keep you guys up to date.

Today I rolled out auto-away for Hab.la users. The Hab.la window will now automatically go away if your instant messaging client reports you as idle for 15 minutes. Why 15 minutes? Because 15 minutes seemed reasonable, in the future we will definitely make this a user configurable option, but we think it’s a great step in the right direction.

So you no longer have to fear about appearing available if you forget to put up an away message and walk away from your computer. Just another feature made faster with MemCacheD :-)

Filed under  //   backend   idle   monitoring  
Posted by Olark 

Comments [0]

Help for our firewall prisoners

I realize that we’ve neglected some of our users who are trapped behind firewalls. For a while we were providing jabber access on port 21, but that was discontinued as a security precaution (we were running the jabber server as root for a few days, big NONO).

Well today is the day we offer two methods to connect to the jabber server that will be pretty hard for any sys admin to block.

First method: Port 21

Simply configure your jabber client to connect to hab.la:21

Second method: Port 80 on port80.hab.la

Configure your jabber client to connect to the server “port80.hab.la” on port 80. You will need a client that lets you specify an arbitrary host to connect to, I know Adium, and PSI support this.

Filed under  //   backend   escape   firewall   hab.la   jailbreak   ports   prisonors   proxy  
Posted by Olark 

Comments [0]

Many Small Fixes

We have made a few small fixes that should greatly improve how Hab.la renders in IE7 and IE6. Over the weekend we also made some improvements that have sped up average response times and lowered the processing power required to process each visitor to your site.

The next step ‘backend’ wise will be incorporating memcached into the setup to reduce mysql hits, which will also make the setup easier to scale as needed.

Filed under  //   backend   css   ie6   ie7   javascript   render  
Posted by Olark 

Comments [0]

More features and tweaks than I will remember

So I’ve been fanatically working on Hab.la recently.

Here are today’s set of updates:

Cool tricks for for Operators:

/follow - in a chat session will cause hab.la to tell you whenever that visitor changes pages.

/nofollow - disables following that user

/nick [nickname] - changes your nickname in a specific chat session

Nickname related fixes:

Visitors can assign themselves a nickname by typing /nick [nickname] in their chat window.

If using Adium or Meebo this nickname will appear on your buddylist. For other XMPP (Jabber) clients the buddy’s status message will read ‘nickname: http://url’.

It may be time to revisit my blog post about manually assigning a nickname to logged in users. As this feature will now benefit users of other instant messengers (i.e. Pidgin, iChat, OpenFire).

Other Fixes:

Hab.la will no longer notify the operator whenever a user changes pages. It will only notify the operator of page changes when the operator is actively chatting with the web-user. If you want to see a visitor’s path through your website use the /follow command.

Better caching on the backend to speed up each individual RPC call. I.e. Hab.la should be faster for all now!

Filed under  //   backend   frontend   javascript   nickname   updates  
Posted by Olark 

Comments [0]

Bug with International Characters Fixed

Hey guys, I thought this bug fix warranted a blog post. So as a few of you have noticed, using some clients the webuser was getting kicked off whenever the operator used a non-ascii character. The webusers were able to use non-ASCII characters fine, but the operators were being restricted to ASCII.

This problem is at least partially fixed (in that I am unable to reproduce it), but there may still be issues. Essentially our logging system was setup in a way that didn’t support logging messages containing international characters – so whenever the system stopped to log a harmless error message, it was crashing the chat session.

I’ve implemented a good first pass of a fix, but I have a feeling there are a few race conditions that could still occur. In any case, I’d consider it completely beta worthy :-)

-Ben

Filed under  //   backend   bugfix   jabber   rpcserver   update  
Posted by Olark 

Comments [0]

Many updates

Whew! The weekend is over, and that means I managed to get what I was trying to get done, done. Of course, as is typical for my updates they are mostly back-end related, and therefore not too exciting for most of our users.

Here’s what’s new: better concurrent user support. We are limiting the number of concurrent active users on a site to 5 for free accounts to keep the load down. An active user is a visitor on your site that has changed pages or navigated to another page on your site in the last 45 minutes. After 45 minutes of inactivity (i.e. someone left a page open) the active user becomes a passive user, freeing up space for a new active user. However, all a passive user has to do to chat with you is to send you a message, and they will transition back to being active. (this is kind of confusing – but, helps us insure your buddylist isn’t filled up with users who have left your site open for hours)

Short explanation: You will now be able to focus more on recent visitors to your site, and people you are chatting with, rather than letting idle users fill up your available users.

Next tweak, various improvements in the network code. This is most useful for mobile users, Hab.la will now let you lose connectivity and continue chatting without having to reload a page.

Many bug fixes on the backend including additional error checking, and more seamless error recovery. These fixes will also improve our ability to scale Hab.la and keep it stable in the future.

Filed under  //   backend   javascript   update  
Posted by Olark 

Comments [0]

Optimized RPC server pushed to production

Another boring update for you hab.la fans. We have made some backend tweaks to the RPC server which should slightly speed up Hab.la (for end users) and reduce the amount of memory and CPU used for each site (which will help us better scale hab.la as traffic increases).

We’ve also fixed a few small bugs with operator availability that should speed up the load time for the initial hab.la window.

Hope everyone is having a great New Year

-Ben

Filed under  //   backend   hab.la   jabber   lock   python   rpc   thread  
Posted by Olark 

Comments [0]

Is it really after 3am, Damn

Anyway, there was a lot of Hab.la progress today. Roland, Kevin, and I held a jam session and hammered out fixes for many of the small bugs, and even managed to implement a few new features as well.

First of all Hab.la should work with iChat3, and with Spark (from ignite).

Second of all, Hab.la will now remember whether the chat window was open or closed as you browse a site. End users can even close the window and have it go away entirely until they receive a message from a site op.

And last, but not least I wrote a really ugly, really quick and dirty Hab.la color customization tool. you can check it out at:

http://static.hab.la/test/bot_inline_color.html

This should help our less technically inclined users customize the colors of their hab.la window. without having to do extra work. I am really looking forward to the day where we support full fledged user templating – but my guess is it will be a while before that arrives.

Filed under  //   backend   experience   frontend   ichat3   javascript   spark   update   user  
Posted by Olark 

Comments [0]

Shhhhh. Quiet. Alpha feature release..

Ok, so I am impatient, but new features do need people testing them, and what is a better way to test a feature than to push it upon all users of hab.la.

To be fair, it is tested and stable. The reason it is still in beta is because it is not compatible with all Jabber clients. I.e. it does not work with iChat; however, it does work with Adium and Meebo.

So without further ado, the new feature is the ability to assign usernames to your web site’s visitors using javascript. (i.e. it is possible to replace webuser1 with cms user, so when you chat with your visitors you’ll know WHO they are. So instead of webuser1 on your buddylist, you’ll now see “Donald Trump” or “John Doe” or “insert registered visitor to your site here”.

So, as per policy, I am not going to provide explicit documentation and howto’s, (especially since this is an alpha feature), but here’s the trick, write some code in your CMS to insert the user’s name into the javascript that start’s hab.la. The config variable you need to add is:

config.vars["force_nickname"] = "CMS USERNAME";

So you could imagine writing some code in PHP that looked like:

<?php
if($user_is_logged_in && $username){ 
?>
config.vars["force_nickname"] = "<?php=$username?>"; 
<?
}
?>

Remember, we are still beta testing this feature, so please let us know if you run into any problems. We know for a fact that it will probably NEVER work with iChat, so I guess we’ll encourage everyone to use Adium :-), or at least anyone who wants super cool features of this sort :-).

For more information about customizing the Hab.la window, see: .. customizing-the-chat-window

Filed under  //   backend   cms   custom   habla   javascript   livechat   nickname   plugin  
Posted by Olark 

Comments [0]