« A great new technote from Support: Setting the Sametime Connect client's preferences | Main| IBM ties OpenOffice suite to real-time communications platform »

The Sametime rich text capabilities added to Sametime 7.5 are much loved by users

Category
But I think over time they are going to be loathed by network administrators. Why do I say this? Well, I think the method in which the text is transmitted is very heavy, and contains too much wrapping etc. On average looking at my logs, it looks like a simple text message in Sametime sends about 200% more network traffic for IM than previously (this does not include Rich Text or emoticons), when you look at the size of messages that contain Rich Text or emoticons then the amount of traffic being sent compared to previous versions is huge. Why is this and could it be made better?

Well lets take a look at the most simple message of "Hello World" , in previous versions of Sametime, the information sent across the network was basically "Hello World" if you send the same text now in Sametime 7.5 the message sent across the network is:

"<span style="font-size:8pt;font-family:Tahoma;color:#000000;" class="left"><span style="font-size:8pt;font-family:Tahoma;font-weight:normal;font-style:normal;">Hello World</span></span>"

So from 11 characters previously to 185 characters, now that doesn't seem too bad, but times that by the number of people in your organization and the additional cost for hardware to record all those chats and starts adding up.

Where things get really crazy though is when you start to send rich text. Take for example the following

This is bold italic bolditalic

Most of us would write this something along the lines of : This is <b>bold</b> <i>italic</i> <b><i>bolditalic</b></i>

Sametime sends it like this:

<span style="font-size:8pt;font-family:Tahoma;color:#000000;" class="left"><span style="font-size:8pt;font-family:Tahoma;font-weight:normal;font-style:normal;">This is </span>
<span style="font-size:8pt;font-family:Tahoma;font-style:normal;"><b>b</b></span>
<span style="font-size:8pt;font-family:Tahoma;font-style:normal;"><b>o</b></span>
<span style="font-size:8pt;font-family:Tahoma;font-style:normal;"><b>l</b></span>
<span style="font-size:8pt;font-family:Tahoma;font-style:normal;"><b>d</b></span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;font-style:normal;"> </span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;"><i>i</i></span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;"><i>t</i></span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;"><i>a</i></span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;"><i>l</i></span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;"><i>i</i></span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;"><i>c</i></span>
<span style="font-size:8pt;font-family:Tahoma;font-weight:normal;font-style:normal;"> </span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>b</i></b></span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>o</i></b></span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>l</i></b></span><span style="font-size:8pt;font-family:Tahoma;"><b><i>d</i></b>
</span><span style="font-size:8pt;font-family:Tahoma;"><b><i>i</i></b></span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>t</i></b></span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>a</i></b></span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>l</i></b></span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>i</i></b></span>
<span style="font-size:8pt;font-family:Tahoma;"><b><i>c</i></b></span></span>

So you get an idea of why I think this may not necessarily be the most efficient approach. Also I don't reallty understand why, but if you send for example the emoticon , Sametime will actually send the image across the network to the other side. What most IM clients do is they know a number of emoticons and convert the text to a local image on the other side. Obviously if it was a custom emoticon you would want to send the image, but if every Sametime client has the same basic emoticons why create all that extra network traffic? If every line is going to begin with <span> then why not truncate it something each Sametime client knows like <s~> and have the client on the other end expand it back out to the full <span> ?

Comments

Gravatar Image1 - About the smiley: the only reason I can think of, is that this allows endusers to create their own smileys and send them to another user; that other user will see the smiley, wether he has it himself or not.

..as to the HTML, it looks, well, inefficient

Gravatar Image2 - @1 I'm sure that's why they send the smiley, but to me that doesn't make the most sense. They could easily reserve certain key strings etc. for the common most known smileys and only send the custom smileys as icons.

Gravatar Image3 - You mean, like EVERY OTHER IM SYSTEM ON THE PLANET DOES?

Your formatted example HAS to be considered a bug. Full inline styles embedded in span tags for every LETTER. Wow. If that was done on purpose, I think I can honestly say that it's the worst coding I've ever seen.

I suppose they could have translated each character into a binary sequence, and then sent 1 and 0, wrapped in span tags. That might have been worse.

Can we safely assume that you contacted the Sametime folks at Lotus and pointed this out to them?

Gravatar Image4 - @3 I raised it as an issue when 7.5 was in beta.

Gravatar Image5 - Did they look at MS Word for pointers on how to generate HTML and decide it just wasn't verbose enough?

"Most of us would write this something along the lines of : This is <b>bold</b> <i>italic</i> <b><i>bolditalic</b></i>"

Surly you mean <b><i>bolditalic</i></b>

Gravatar Image6 - The same guy must have programmed Domino View translation for the Web. The tables have tons of repeating stuff which is not wanted or needed at all. Like what's up with the "nowrap" for each TD, I have to add some inefficient termination tag and recreate the TD tag again using some cumbersome A HREF and @Text(@DocumentUniqueID). Or why have the same "<img width="16" height="1" src="/icons/ecblank.gif"" repeat on each row, instead of using a simple class definition for that same formatting, if that img tag is needed at all, it could be done better with css also.

Gravatar Image7 - @6 - Domino HTML view tables predate CSS support in browsers.

Which speaks volumes about how much that stuff is in need of an update, though.

But at the time, it really was the best way to do it, and be sure you could render in Netscape 3.

Gravatar Image8 - Yeah, I have the feeling also that IBM Lotus forgot about their main priority: Domino Web Server. Instead they focus on creating some Java based Notes Clients. But I hope my vision about Notes/Domino 9 will finally bring IBM Lotus back to their main business.

Gravatar Image9 - I would have expected IBM to architect this as a web service and wrap each character into a SOAP message.

Gravatar Image10 - @9 OK that made me laugh.

Perhaps this is planning ahead for when IBM host Sametime and they charge extra for network traffic.

Gravatar Image11 - @6 Mika, the nowrap attribute is one of the few things you can get rid of: Set the view to display more than one line, but shrink rows to content. Same for th tags. Disabling "show response documents in a hierarchy" (if not needed) will get rid of references to ecblank.gif, if you don't use categories. All too obvious, isn't it? Now, I'm waiting for someone to tell me how to remove the valign attributes ...

Of course, if a view is as simple as that, you can almost just as well crank it out as pass-through HTML.

Anyway, Carl, thanks for mentioning. I had a good laugh.

Gravatar Image12 - This is very good information! I guess we always figured this was the case with the UIM client but never saw it explained so clearly.

Does anyone know if there is a mention of this anywhere else in another blog or technote perhaps?

Thanks again for bloggin' this.

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::rolleyes:;-)