Genii Weblog

All your base are belong to IBM: HTML rendering

Mon 15 Dec 2008, 08:37 AM

by Ben Langhinrichs
In Part 1 of this series, I showed how IBM's rendering of MIME messages could lead your customers to think you were still running Notes R5, and how iFidelity, which is in beta right now, would allow you to send out mail that looks like it does in the Notes client rather than the way it did in 2001.  In this part, I show a parallel rendering done when Notes data is displayed on the web.

In his insightful book, Blink - The Power of Thinking Without Thinking, Malcolm Gladwell describes how the human mind can analyze a great deal of data in an instant and come to a conclusion that might be hard to enumerate, but is nonetheless correct.  In one study, people looking at a 10 second clip without sound of various professors teaching could describe their teaching style, effectiveness and ability to maintain control.  Their snapshot evaluations matched those of students who had taken a course with that professor for an entire semester.

Similarly, when a person sees a webpage, that person makes an almost instantaneous judgment about the website.  When a person evaluating Notes sees a webpage rendered by Domino, they make a judgment about whether Notes is right for their organization.  It doesn't really matter that a good web developer could set stylesheets that would fix a number of the rendering issues, or that a website could choose to avoid rich text rendering entirely.  The snap judgment is made, and is the source of many of the negative comments about Domino as a web platform or Notes in general.

With that in mind, let's look at a table sent to me by a customer (with sanitized data) and see the rendering experience that might lead to that instantaneous judgment.  To be perfectly clear, the table was sent because it was rendering badly in CoexEdit.  All software has defects, but what matters is how you deal with them.  We fixed the defects in a matter of days, and sent a fix back to the customer.  The most serious defect shown below was there in both Notes/Domino 8.0.0 and Notes/Domino 8.0.1, and has been fixed in 8.0.2, a full year where this bug was evident, and longer for the many customers still on 8.0.1.  In addition, many of the other rendering issues shown below have been issues for at least the past five years, and a few have gotten worse in the Notes/Domino 8.5 beta than they were in 8.0.1.

1) Notes 8.0.1 (looks the same in Notes 8.5 beta as you might expect)

Table in Notes 8.0.1 client

2) Rendered by Domino 8.0.1 and shown in Internet Explorer 7  (the missing "Owner Occupied" and overwritten lines are a rendering bug in 8.0.0/8.0.1)

Rendered by 8.0.1 and shown with Internet Explorer 7

3) Rendered by Domino 8.0.1 and shown in Firefox 3  (the garbled cells on the right are a rendering bug in 8.0.0/8.0.1)

Rendered by 8.0.1 and shown with Firefox 3

4) Rendered in Domino 8.5 (beta) and shown in Internet Explorer 7 with annotations of a few of the rendering issues

Rendered by 8.5 beta and shown with Internet Explorer 7

Some of these issues could be fixed easily with a stylesheet.  Others are very difficult to fix without hardcoding HTML.  All should be fairly easily fixable by IBM, one would think.

5) Rendered by CoexEdit 2.1c on Domino 8.0.1 and shown in Internet Explorer 7

Rendered by CoexEdit 2.1c and shown with Internet Explorer 7

No, don't analyze it.  Just glance at it and the annotated one above.  Which do you want your customers to see?  Which do you want prospective Notes/Domino people to see?  If a moment's glance doesn't do it, my case isn't made.

Copyright 2008 Genii Software Ltd.

What has been said:

737.1. Erik Brooks
(12/15/2008 06:31 PM)

Ha! I believe that garbled table bug was mine. I don't have the SPR number in front of me, but that was one that was so blatantly reproducible it was really quite sad that it wasn't fixed until 8.0.2 (we're actually running 7.0.3 with a HF for it).

Essentially, if a table cell had completely hidden content (i.e. all hide-whens are true) then Domino wouldn't even render an empty <td> for it. So you could end up with 4 <td>s on one row and 3 on another (because one was hidden), which is an invalid table. The browser would choke.

To be fair, once I reported it IBM fixed it (sort of) really quickly. They got a fix to me in a week. On first blush it worked fine, but as soon as I threw nested tables at it it choked again(whoops). It took a few more weeks for that to get nailed.

Looking good though, Ben.